Postfixの設定

メールの基本

インターネット・プロトコル詳説(5):SMTP(Simple Mail Transfer Protocol)~前編 - @IT

SMTP自体はメールの送信要求をサーバへ伝えるだけの役割をもつ。サーバでは、受け取ったメールに対して以下の処理を行う。

一般に、Gmailなどでメールを送る場合は下の流れが発生しており、1回gmail.comを経由することで、送信者が本当にgmail.comのアカウントをもっており、かつ正規ユーザであることが証明できる。

注意すべき点

SMTP自体は認証機構をもっていないので、POP before SMTPやSMTP-AUTHなどの方法でサーバが責任をもって認証する必要がある。ここをちゃんとしていないと、スパムが勝手にSMTPへメールを送りつけて転送させ、踏み台として使われることがある。こうなるとドメインがブラックリストに登録され、送信サーバとして使えなくなる可能性がある。

メールの送信要求とサーバ間のリレーがまったく同じプロトコルで行われるというのがどうにも古臭く、現代的なシステムに慣れていると直感に反する。

Postfixの設定

以上を踏まえて、Postfixを設定する。ポリシーは以下の通り。

$ sudo postconf -e 'myorigin = $mydomain' # Postfixが送信するメールが、受け取り先でどのドメインから来たように見えるか
$ sudo postconf -e 'mydestination = osak.jp mail.osak.jp' # このドメインに対して送信されたメールはこのマシンで処理する(これ以上転送しない)
$ sudo postconf -e 'smtpd_client_restrictions = reject_unknown_client' # ドメインを引けないIPから接続してきたら弾く
$ sudo postconf -e 'smtpd_recipient_restrictions = reject_unauth_destination' # RCPT TOが外部サーバの時は弾く

参考

以下はPostfixドキュメントの日本語訳だが、底本が古い(現在Postfixの最新版は2.11だが、翻訳元が2.2のドキュメントになっている)。