Postfix設定 · 1 min read · Oct 11, 2025

Postfix、Courier、MySQLを使用した仮想ユーザーとドメイン (CentOS 5.1) - ページ 5

14 Postfixのテスト

PostfixがSMTP-AUTHTLSの準備ができているか確認するには、次のコマンドを実行します。

telnet localhost 25

Postfixメールサーバーへの接続が確立されたら、次のコマンドを入力します。

ehlo localhost

次の行が表示される場合、すべて正常です。

*250-STARTTLS *

および

*250-AUTH PLAIN LOGIN *

すべて正常です。

[root@server1 ~]# telnet localhost 25  
Trying 127.0.0.1...  
Connected to localhost.localdomain (127.0.0.1).  
Escape character is '^]'.  
220 server1.example.com ESMTP Postfix  
ehlo localhost  
250-server1.example.com  
250-PIPELINING  
250-SIZE 10240000  
250-VRFY  
250-ETRN  
250-STARTTLS  
250-AUTH PLAIN LOGIN  
250-AUTH=PLAIN LOGIN  
250-ENHANCEDSTATUSCODES  
250-8BITMIME  
250 DSN  
quit  
221 2.0.0 Bye  
Connection closed by foreign host.  
[root@server1 ~]#

システムのシェルに戻るには、次のコマンドを入力します。

quit

15 データベースのポピュレートとテスト

データベースをポピュレートするには、MySQLシェルを使用できます。

mysql -u root -p  
USE mail;

少なくともdomainsおよびusersテーブルにエントリを作成する必要があります。

INSERT INTO `domains` (`domain`) VALUES ('example.com');  
INSERT INTO `users` (`email`, `password`, `quota`) VALUES ('[email protected]', ENCRYPT('secret'), 10485760);

(パスワードを暗号化するために、2番目のINSERT文でENCRYPT構文を使用することに注意してください!)

他の2つのテーブルにエントリを作成したい場合は、次のようになります。

INSERT INTO `forwardings` (`source`, `destination`) VALUES ('[email protected]', '[email protected]');  
INSERT INTO `transport` (`domain`, `transport`) VALUES ('example.com', 'smtp:mail.example.com');

MySQLシェルを終了するには、次のコマンドを入力します。

quit;

ほとんどの人にとって、MySQLのグラフィカルフロントエンドがある方が簡単です。したがって、http://192.168.0.100/phpmyadmin/またはhttp://server1.example.com/phpmyadmin/の下でphpMyAdminを使用して*mail*データベースを管理することもできます。再度、ユーザーを作成する際には、パスワードを暗号化するためにENCRYPT関数を使用することを確認してください。

ドメインとユーザーテーブルについては、これ以上説明する必要はないと思います。

forwardingsテーブルには、次のようなエントリが含まれる場合があります。

sourcedestination
[email protected][email protected][email protected]のメールを[email protected]にリダイレクトします
@example.com[email protected][email protected]のためのキャッチオールアカウントを作成します。example.comへのすべてのメールは[email protected]に届きますが、usersテーブルに存在するものを除きます(つまり、[email protected]がusersテーブルに存在する場合、[email protected]へのメールは依然として[email protected]に届きます)。
@example.com@anotherdomain.tldこれは、example.comへのすべてのメールをanotherdomain.tldの同じユーザーにリダイレクトします。たとえば、[email protected]へのメールは[email protected]に転送されます。
[email protected][email protected], [email protected][email protected]のメールを2つ以上のメールアドレスに転送します。destinationにリストされたすべてのメールアドレスは、メールのコピーを受け取ります。

transportテーブルには、次のようなエントリが含まれる場合があります。

domaintransport
example.com:example.comのメールをローカルに配信します。このレコードがこのテーブルに存在しないかのように扱われます。
example.comsmtp:mail.anotherdomain.tldexample.comへのすべてのメールをsmtpを介してmail.anotherdomain.comサーバーに配信します。
example.comsmtp:mail.anotherdomain.tld:2025example.comへのすべてのメールをsmtpを介してmail.anotherdomain.comサーバーに配信しますが、ポート2025を使用します。デフォルトのsmtpポートは25です。

| example.com | smtp:[1.2.3.4]
smtp:[1.2.3.4]:2025
smtp:[mail.anotherdomain.tld] | 角括弧はPostfixが角括弧内のアドレスのMX DNSレコードを検索するのを防ぎます。IPアドレスに対して意味があります。 | | .example.com | smtp:mail.anotherdomain.tld | example.comの任意のサブドメインのメールはmail.anotherdomain.tldに配信されます。 | | * | smtp:mail.anotherdomain.tld | すべてのメールはmail.anotherdomain.tldに配信されます。 | | [email protected] | smtp:mail.anotherdomain.tld | [email protected]へのメールはmail.anotherdomain.tldに配信されます。 |

詳細については、次のコマンドを参照してください。

man transport

transportテーブルのエントリの順序が重要であることに注意してください!エントリは上から下に順番に処理されます。

重要: Postfixはトランスポートのキャッシュメカニズムを使用しているため、transportテーブルの変更が反映されるまでに時間がかかる場合があります。変更を即座に反映させたい場合は、transportテーブルに変更を加えた後、次のコマンドを実行してください。

postfix reload

16 参考文献

チュートリアル: Debian-SargeとPostfix 2.1を使用したISPスタイルのメールサービス: http://workaround.org/articles/ispmail-sarge/

Postfix + Quota: http://vhcs.net/new/modules/newbb/viewtopic.php?topic_id=3496&forum=17

saslauthdを使用して暗号化されたメールパスワード: http://www.syscp.de/docs/public/contrib/cryptedmailpws

17 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。