Help us understand the problem. What is going on with this article?

postfixでメール送信先ドメインを制限する

More than 3 years have passed since last update.

テスト環境などで意図せずメール誤爆しないようにメール送信先ドメインを制限したいことがあります。

ぐぐったところ設定方法はいろいろあるようですが、rejectしちゃうとアプリケーション側にエラーが返ってしまって困るケースがあったので、受け付けて捨てる方法で設定します。

例として @example.com にはメールを許可するけど、その他のドメイン宛は捨てる設定は以下のとおりです。postfixは2.6系です。

/etc/postfix/main.cf に以下の設定を追加します。

/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 no-reply@myhost.example.com -t hoge@example.com
[root]$ echo "mail test1" | sendmail -f no-reply@myhost.example.com -t hoge@gmail.com

hoge@example.com にメールが届いて、 hoge@gmail.com にメールが届かなければ成功。

ログで確認すると /var/log/maillog にこんな感じの出力が出てる。

Jan 27 14:47:13 myhost postfix/smtp[26538]: 9A42F42B1D: to=<hoge@example.com>, 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=<hoge@gmail.com>, 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コマンド使用時には有効にならない

crowdworks
21世紀の新しいワークスタイルを提供する日本最大級のクラウドソーシング「クラウドワークス」のエンジニアチームです!
https://crowdworks.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away