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 ポート経由でのメールの送信ができるはずですが。。。 というか、できました。