Outbound Port 25 Blocking により、外部にSMTP が通せない環境でメールサーバを運用する場合、次のいずれかの対応方法をとる必要があります。
1.プロバイダのメールサーバに転送する
2. サブミッションポート(Submission Port)が使える外部のメールサーバに転送する
1 の場合で認証が不要な場合は、main.cf に以下を加えることで簡単に対応することができます。
main.cf:
relayhost = smtp.nifty.com
smtp.nifty.com は自分のプロバイダの SMTP サーバに置き換えてください。
1 で認証が必要な場合、あるいは、2 の場合は普通認証を必要としますが、この場合は Cyrus SASL 対応の Postfix を使うことで、認証付きのリレーが可能になります。
main.cf:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
relayhost = [smtp.nifty.com]:587
smtp_use_tls = yes # optional
relayhost は自分が使う SMTP サーバ、ポート番号に置き換えてください(587 はサブミッションポートを使う場合)
次に、smtp_sasl_password_maps で指定したファイルを作成します。
saslpass:
# 書式:”relayhostに指定した値”<space>”認証ユーザ名”:”認証パスワード”
[smtp.nifty.com]:587 user:pass
作成後、postmap で saslpass.db を生成します。
$ cd /etc/postfix/
$ postmap saslpass
このままでも動作しますが、ここでセキュリティを考慮するのであれば、元としたプレインテキストのパスワードファイル saslpass は削除しておくべきでしょう。
$ rm saslpass
あとは Postfix を再起動し、好きなメーラを使って動作確認を行えば完了です。ここでは CUI の mail コマンドの例を示します。
$ mail -s test foo@example.com
hello, world
.
(foo@exmple.com は自分が確認できる任意のメールアドレス)
参考:
– Re: プロパイダのsmtpホストが smtp authを要求してる場合(Postfix-jp ML:1685)
ぷらら環境での Postfix 設定。
– 25番ポートブロック対策について(Fedoraで自宅サーバー構築BBS)
@nifty 環境での Postfix 設定。
– Postfix で、Gmail にメールをリレーする(私の二次記憶)
Postfix + Gmail
– postconf(5)(Postfix 日本語マニュアル)