Postfix SMTP-AUTH Client
2008/7/2 H.Suzuki <setter AT i-red DOT info>
BACK
とあるプロバイダがあるプロバイダに統合されることになった。
以前よりアナウンスがあったのだけど、メールの送信に 25 番(smtp)ポートでは使えなくなるそうだ。
これを、Outbound Port25 Blocking とか言ったりするのだけど、これに伴い、
プロバイダのメールサーバも25番ポートを塞いでしまうそうで、さらに、SMTP-AUTH が標準になる。
自前でメールサーバ (VineLinux-4.2 + Postfix) をあげていたりすると、とても困ることであったりする。
Postfix は smtp クライアントとして、SMTP-AUTH を使うことができるそうなので、
それに対応するために、Postfix の設定を調整した。
環境は、こんな感じ
(1)Client -> (2)Postfix -> (3)DeleGate
-> (4)Postfix -> (5)プロバイダ smtp.example.jp(w/SMTP-AUTH)
(4) から、(5) にメールを転送(リレー)する時に SMTP-AUTH が必要。
早速...
...の前に、まずはこれを読みましょう。
# apt-get update
# apt-get install cyrus-sasl cyrus-sasl-md5 cyrus-sasl-plain
とかして、Postfix が認証に使うものをインストールしておく。
そして、
/etc/postfix/master.cf
に以下の行を追加(もしくはコメントされているものを使う)
submission inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_etrn_restrictions=reject
さらに、
/etc/postfix/main.cf
を編集。
relayhost を以下のようにする。
relayhost = [サーバ]:ポート
例) relayhost = [smtp.example.jp]:587
さらに、以下の行を追加。
// SMTP-AUTH を使うために、sasl-auth を有効にする。
smtp_sasl_auth_enable = yes
// (5) のサーバに使うユーザ名とパスワードをしまっておくファイル
smtp_sasl_password_maps = hash:/etc/postfix/smtp-auth-pass
// 保護回路 というか、デフォルトが noanonymous,noplaintext なので、plaintext を使いたい場合。
smtp_sasl_security_options = noanonymous
//この行は無くてもいいかな
smtp_sasl_mechanism_filter = cram-md5, plain, login
次に smtp.example.jp に対して使う ユーザ名とパスワードを設定する。
smtp_sasl_password_maps で指定したファイル
/etc/postfix/smtp-auth-pass
に、以下のような内容を書き込み、保存する。
[smtp.example.jp]:587 user:passwd
これを Postfix が使えるように変換する。
# /usr/sbin/postmap /etc/postfix/smtp-auth-pass
さて、Postfix を再起動してみましょう。
# /etc/rc.d/init.d/postfix restart
これで、SMTP-AUTH 付き submission ポート経由でのメールの送信ができるはずですが。。。
というか、できました。