CentOS + postfix ローカルマシンからメール送信が出来ない場合

to=, relay=none, delay=47, delays=0.07/0.01/47/0, dsn=4.4.1, status=deferred (connect to mx.XXXX.XX.jp[000.000.000.00]:25: Connection timed out)

などと出てメールの送信が出来ない
数時間はまったのでメモ


ルータが悪いのかと色々設定するがタイムアウトは直らない
私が使用しているプロバイダはso-netさんなのだが
so-netさんはネットワーク内から外部のコンピュータのTCPポート25番への通信を禁止しているので
so-netさんのSMTPサーバをリレーホストに設定する必要があるそうです


以下、「ninxit.blog」様に感謝

http://www.ninxit.com/blog/2009/02/14/postfix-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB-op25b%E8%A8%AD%E5%AE%9A/


# vi /etc/postfix/main.cf
以下を追加

relayhost = [mail.so-net.ne.jp]:587

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = PLAIN


認証ファイルを作成

# echo [mail.so-net.ne.jp]:587 ***@***.so-net.ne.jp:password > /etc/postfix/authinfo
# chmod 640 /etc/postfix/authinfo
# postmap /etc/postfix/authinfo

Postfix を起動する。

テスト送信

echo test | mail ***@gmail.com

OK!



status=deferred (Authentication failed: cannot SASL authenticate to server mail.so-net.ne.jp[202.238.82.20]: no mechanism available)

こんなエラーが出るときは

# yum install cyrus-sasl-md5