web-dev-qa-db-ja.com

テストのためにすべての送信メールをPostfixから単一のアドレスにリダイレクトする方法

電子メール通知を送信するWebベースのアプリケーション用のテストサーバーを設定しています。

テストは実際の顧客データを使用して実行される場合があります。そのため、テスト中にサーバーが実際の顧客にメールを送信できないことを保証する必要があります。

私が欲しいのは、実際の宛先に配信するのではなく、送信メールを受け取って単一のメールアドレスにリダイレクトするようにpostfixを設定することです。

Ubuntuサーバー9.10を実行しています。

前もって感謝します

13
thatjuan

トラップされたすべてのメールを受信するようにローカルユーザーを設定します。

adduser mailtrap

Main.cfに追加する必要があります:

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

次に、この中に/ etc/postfix/transportを作成します。

localhost :
your.hostname.example.com:
* local:mailtrap

保存して実行:postmap /etc/postfix/transport最後にpostfixを再起動しますinvoke-rc.d postfix restart

ローカルのメールはすべて正常に配信され、外部のメールはローカルのmailtrapアカウントに配信されます。

19
Dardo

仮想エイリアスファイルを作成することをお勧めします。

/etc/postfix/main.cf内:

virtual_alias_maps = pcre:/etc/postfix/virtual

/ etc/postfix/virtual:

/.*@.*/ root

rootは、すべての送信メールを受信するユーザーに置き換えることができます。このパターンは、ローカルメールを(リダイレクトなしで)通常どおり配信する場合に調整できます。

/.*@(?!hostname\.localdomain$).*/ root

オリジナルのアイデアはここにあります: Postfix開発サーバー-すべての送信メールをインターセプト

10

Postfixはsmtp-sinkと呼ばれるものを提供します。デフォルトでは、受信するすべての電子メールをブラックホール化します。それ以降のバージョンは、メールをファイルに取り込むように構成することもできます。

これは技術的にはpostfixを使用していません(しかしpostfixによって提供されるユーティリティです)。また、技術的には各電子メールを単一の電子メールアドレスにリダイレクトしません。ただし、ポート25のすべてのトラフィックをキャプチャし、解析可能なファイルにダンプします。

5
toppledwagon