電子メール通知を送信するWebベースのアプリケーション用のテストサーバーを設定しています。
テストは実際の顧客データを使用して実行される場合があります。そのため、テスト中にサーバーが実際の顧客にメールを送信できないことを保証する必要があります。
私が欲しいのは、実際の宛先に配信するのではなく、送信メールを受け取って単一のメールアドレスにリダイレクトするようにpostfixを設定することです。
Ubuntuサーバー9.10を実行しています。
前もって感謝します
トラップされたすべてのメールを受信するようにローカルユーザーを設定します。
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
アカウントに配信されます。
仮想エイリアスファイルを作成することをお勧めします。
/etc/postfix/main.cf内:
virtual_alias_maps = pcre:/etc/postfix/virtual
/ etc/postfix/virtual:
/.*@.*/ root
root
は、すべての送信メールを受信するユーザーに置き換えることができます。このパターンは、ローカルメールを(リダイレクトなしで)通常どおり配信する場合に調整できます。
/.*@(?!hostname\.localdomain$).*/ root
オリジナルのアイデアはここにあります: Postfix開発サーバー-すべての送信メールをインターセプト
Postfixはsmtp-sinkと呼ばれるものを提供します。デフォルトでは、受信するすべての電子メールをブラックホール化します。それ以降のバージョンは、メールをファイルに取り込むように構成することもできます。
これは技術的にはpostfixを使用していません(しかしpostfixによって提供されるユーティリティです)。また、技術的には各電子メールを単一の電子メールアドレスにリダイレクトしません。ただし、ポート25のすべてのトラフィックをキャプチャし、解析可能なファイルにダンプします。