postfixでメール送信先ドメインを制限する
テスト環境などで意図せずメール誤爆しないようにメール送信先ドメインを制限したいことがあります。
ぐぐったところ設定方法はいろいろあるようですが、rejectしちゃうとアプリケーション側にエラーが返ってしまって困るケースがあったので、受け付けて捨てる方法で設定します。
例として @example.com
にはメールを許可するけど、その他のドメイン宛は捨てる設定は以下のとおりです。postfixは2.6系です。
/etc/postfix/main.cf
に以下の設定を追加します。
transport_maps = hash:/etc/postfix/transport
/etc/postfix/transport
に以下の設定を追加します。
ローカル配送も不要な場合はlocalの行もなくてよいかもです。
example.com smtp:
localhost local:
localhost.localdomain local:
* discard: "discard received email"
transportファイルをコンパイルします。
[root]$ postmap /etc/postfix/transport
[root]$ echo $?
0
postfixの設定をリロードします。
[root]$ /etc/init.d/postfix reload
postfix を再読み込み中: [ OK ]
設定は以上です。
試しにsendmailコマンドで疎通確認してみます。
[root]$ echo "mail test1" | sendmail -f [email protected] -t [email protected]
[root]$ echo "mail test1" | sendmail -f [email protected] -t [email protected]
[email protected]
にメールが届いて、 [email protected]
にメールが届かなければ成功。
ログで確認すると /var/log/maillog
にこんな感じの出力が出てる。
Jan 27 14:47:13 myhost postfix/smtp[26538]: 9A42F42B1D: to=<[email protected]>, relay=smtp.example.com[XXX.XXX.XXX.XXX]:25, delay=1.1, delays=0.02/0/0.41/0.68, dsn=2.0.0, status=sent (250 2.0.0 OK 1453873633 lm9si7024058pab.142 - gsmtp)
Jan 27 14:47:29 myhost postfix/discard[26551]: 9D42342B1D: to=<[email protected]>, relay=none, delay=0.02, delays=0.01/0/0/0, dsn=2.0.0, status=sent ("discard received email")
これでメール誤爆しなくて安心してテストできますね。
参考
postfixのsmtpd_recipient_restrictionsの宛先制限はsendmailコマンド使用時には有効にならない
Author And Source
この問題について(postfixでメール送信先ドメインを制限する), 我々は、より多くの情報をここで見つけました https://qiita.com/minamijoyo/items/d488966ebc1d36ea3586著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .