Last Updated on 2016年3月25日 by かんりにん
テスト環境でデバッグやテスト時に開発サーバーのMTAから配信されるメールを特定のアドレスに転送させる設定を追加。
目的は、ソース内にハードコーディングされている本番サーバー向けのドメインに、誤ってメールが送信されちゃうトラブルを回避するため。
環境はEC2、rightscaleのCentOS6.7にて。
▼要件
-
・インバウンドメールを、本来の宛先にかかわらず、すべてローカルの特定のアカウントに転送する
・システム宛(root, postmaster等)は root 、それ以外は harumakiuser に送られる
宛先:harumakiuser@example.com → harumakiuser@example.com(ローカル) 宛先:info@example.com → harumakiuser@example.com(ローカル) 宛先:abuse@example.com → harumakiuser@example.com(ローカル) 宛先:webmaster@example.com → harumakiuser@example.com(ローカル)
-
・アウトバウンドメールについてもローカル内に転送し、外部には送らない。
ソースコード内にハードコーディングされている 本番サービスのドメイン宛メール送信があって
見落としによる外部送信を回避するため。
▼環境ドラフト
-
・SMTPはpostfixで動かす
・メール転送オプション”transport_map”または”header_checks”あたりで設定。
・ローカルの配送先は複数指定できないので、rootに統一する。
・メールの格納方式は、このタイミングでMaildir形式に変更する。
▼設定
– /etc/postfix/main.cf
# インバウンドのメールを受けないため、明示的にローカルホストを指定 myhostname = localhost.localdomain mydomain = localhost.localdomain myorigin = $myhostname # アウトバウンドメールの配信は原則ローカルのみ、外部ホストからの転送は受け付けない inet_interfaces = 127.0.0.1 # ローカル転送の際に指定するドメイン mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # ローカルにためるメールをmaiboxからmaildir形式へ変更 home_mailbox = Maildir/ # 以下、アウトバウンド向けメールをローカルに転送する設定 # ローカル転送を拒否しない local_recipient_maps = # 今回、ここが分からなくてハマッたが、設定値をnullにすることでうまくいった。 # ローカルユーザーのリレー先アカウントの指定、以下ではrootを指定 luser_relay = root # 宛先ドメインの条件判定式(transport)のファイルを指定 transport_maps = hash:/etc/postfix/transport
– /etc/postfix/transport
# すべてのメールをローカルへ転送する * local:
▼設定適用
※開発環境ではpostfixを未起動であったため、初期設定を含めて設定を適用。
– 1.aliases.db作成
# postalias /etc/aliases
– 2.自動起動設定
# chkconfig --list postfix service postfix supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add postfix') # chkconfig --add postfix # chkconfig --list postfix postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
– 3.transport
# postmap /etc/postfix/transport
– 4.postfix起動
# /etc/init.d/postfix start Starting postfix: [ OK ]
▼ログ
上記設定後での配信成功ログ。
Jan 25 11:58:46 ip-10-128-1-4 postfix/smtpd[15810]: connect from localhost[127.0.0.1] Jan 25 11:58:55 ip-10-128-1-4 postfix/smtpd[15810]: BBA397615E: client=localhost[127.0.0.1] Jan 25 11:59:09 ip-10-128-1-4 postfix/cleanup[15812]: BBA397615E: message-id=<20160125025855.BBA397615E@localhost.localdomain> Jan 25 11:59:09 ip-10-128-1-4 postfix/qmgr[15801]: BBA397615E: from=<root@localhost.localdomain>, size=377, nrcpt=1 (queue active) Jan 25 11:59:09 ip-10-128-1-4 postfix/local[15803]: BBA397615E: to=<root@localhost.localdomain>, orig_to=<harumakiuser@example.com>, relay=local, delay=19, delays=19/0/0/0, dsn=2.0.0, status=sent (delivered to maildir) Jan 25 11:59:09 ip-10-128-1-4 postfix/qmgr[15801]: BBA397615E: removed
ひとまずこれでOK。