メールサーバのDoCoMo/AU対策

DoCoMoは2003年末あたりから、AUは2004年7月あたりからSPAM対策が強化(?)され、個人のIPで構築したメールサーバからのメールを受け付けなくなった。携帯向けにメーリングリストを作成しても、それが弾かれるのでは意味がない。そこで、DoCoMo?/AU 宛のみプロバイダに提供されているSMTPを経由してメールを配信する設定をしてみよう。通常セキュリティのため、SMTPサーバはSMTP-AUTHを用いて転送を制限している。そこでpostfixにSMTP-AUTHをするクライアントとしての設定を組み込むことになる。

SASL対応postfixのインストール

Debian GNU/Linuxで採用されているpostfixはデフォルトではSASLが入っていないので、SASL対応パッケージをインストールする。
# apt-get install postfix-tls
これでSASL対応postfixがインストールされた。構成は普通のpostfixと何ら変わり無い。

SMTP-AUTHのユーザー名、パスワードの設定

SMTPで転送してくれるサーバのユーザー名、パスワードを設定する。パスワードは通常/etc/postfix/saslpassに置いて
# vi /etc/postfix/saslpass
とする。そこにプロバイダから与えられた情報を
SMTPサーバ名 ユーザー名:パスワード
の順で記述し、
# postmap /etc/postfix/saslpass
とすればhashに変換された/etc/postfix/saslpass.dbができあがる。セキュリティのために/etc/postfix/saslpassのパーミッションを変更しておく。
# chmod 600 /etc/postfix/saslpass

postfix側の設定

/etc/postfix/main.cfに次の三行を追加する。これでSMTP-AUTHのクライアントとして動く。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_security_options = noplaintext
DoCoMo/AU宛のメールのみ、プロバイダのSMTPを用いて転送するため、/etc/postfix/transportを編集。
# vi /etc/postfix/transport
中身はこんな感じ。
.ezweb.ne.jp :[プロバイダのSMTP]
ezweb.ne.jp :[プロバイダのSMTP]

.docomo.ne.jp :[プロバイダのSMTP]
docomo.ne.jp :[プロバイダのSMTP]
そしてhashにして
# postmap /etc/postfix/transport
設定ファイルの再読み込み。
# /etc/init.d/postfix reload
これでDoCoMo/AU宛のみプロバイダを経由するはず。