Postfix:開発環境用のメール送信設定

最終更新日時:2019-04-02 12:48:36
Postfix

自分がよく設定している開発環境用のメール送信設定のメモ。
以下、Postfix 想定のメモですが、sendmail でも mailiertable を使えば同じようなことが可能です。

目的

開発環境上でテストする際に、実在するメールアドレスへメールを送信してしまってはまずいケースが多々あります。
例えば、DB 上に登録されている会員データ的なもののメールアドレスへ何らかの通知メールを送信する、など。
通常はこういったケースでは、そもそもそのような危険なデータを使わないというのが鉄則ですが、そうもいかないことも多々ありますので、MTA 側でいわゆる誤爆的なメール送信を防ぐことが目的となります。

設定

/etc/postfix/main.cf で以下のように設定します。

 transport_maps = hash:/etc/postfix/transport
 luser_relay    = xxxxxxxx

xxxxxxxx は想定外のメールを受け取るメールアドレスです。
通常は適当なローカルユーザーにします。

さらに、/etc/postfix/transport で以下のように設定します。

 aaa.bbb.ccc    smtp:aaa.bbb.ccc
 *              local:

普通に送信して良いドメインは aaa.bbb.ccc のように明記します。

解説

transport_maps を使ってメール送信するドメインを制限しています。
これは社内のアドレスなどテストで使用するドメイン、また、ある意味誤送信してもOKなドメインです。
それ以外は local 配信します。
ちなみに、

 aaa.bbb.ccc    smtp:[xxx,xxx,xxx]

のように [] を使用して記載すると、ドメインの部分は MX を引きません。
また、IP アドレスも直接記載することができます。

特定のドメイン以外の local 配信となったものは、luser_relay の設定により、xxxxxxxx 宛に送信されるようになります。

お問い合わせは 掲示板 にて。