開発環境から外部へテストメールが飛ばないようにする
OSX/Linux の開発環境などからメール送信のテストをしたい場合などに、
rails なら letter_opener とか post_office が有名ですが、 gem が使えない環境(rails プロジェクト以外など)で、
どうしてもテストでメール送信せざるおえない場合に、 postfix の設定を書き換えて外部へのメールをすべてテスト用メールアカウントに送信する方法です。
例) [email protected] 宛のメールを全て [email protected] 宛として送信する
前提条件
Postfix 2.2 以上
example.com と example.co.jp は、実際に使ってるドメインに変更する。
Postfix の設定
@example.com 以外のメアドをすべて [email protected]
に置換して送信する
sudo vim /etc/postfix/allmails_to_example.txt
!/.*@example.com$/ [email protected]
↑の正規表現で、@example.com 以外のメアドを、 [email protected] に送るルールになる
sudo vim /etc/postfix/main.cf
mail.cf に下記を追記する
local_header_rewrite_clients = static:all
# envelope_recipient: 実際に使用される送信先
# header_recipient: 見た目の送信先(送信先に使用されるわけではない)
canonical_classes = envelope_recipient, header_recipient
# メール表示上の宛先(header_recipient)だけは、置換しないで偽装する場合
#canonical_classes = envelope_recipient
canonical_maps = regexp:/etc/postfix/allmails_to_example.txt
再起動
sudo postfix stop
sudo postfix start
送信テスト
sendmail でローカルから [email protected] 宛に送信してみる。
$ sendmail [email protected]
From: [email protected]
To: [email protected]
Subject: test
test
.
[email protected] -> [email protected] に置換されて届いているか確認する。
届いて居なかったら /var/log/mail.log あたりに、fail が出ていないか確認する。
Author And Source
この問題について(開発環境から外部へテストメールが飛ばないようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/take-ookubo/items/117ad1a19a823b1cd690著者帰属:元の著者の情報は、元の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 .