web-dev-qa-db-ja.com

接尾辞-送信メールを(インターネットではなく)ハードドライブに書き込む方法は?

私のwebb-appユニットテストをローカルの開発環境、つまり電子メール配信が関係する環境で機能させるために、postfixをインストールしました。

ユニットテストを実行するたびに、同僚から多数のメールが届いていることを確認してください。そのため、送信メールが実際に外部に配信されるのではなく、ファイルシステム上の任意のディレクトリに書き込まれるようにpostfixを構成したいと思います。

かなりの量の検索を行いましたが、自分のニーズに固有の解決策が見つかりませんでした。私が見つけることができる最も近い解決策は、以下にリンクされているように、カスタムスクリプトを介してメールをルーティングすることですが、これはまだトリックを実行していません。

助けてくれてありがとう-

Postfixですべてのメールをカスタムスクリプトに配信するにはどうすればよいですか?

5
Daniel B.

はい、可能です。次の行を/etc/postfix/master.cfに追加します。

fs_mail    unix  -       n       n       -       -       pipe
   flags=F user=%YOUR_USER_NAME% argv=tee /home/%YOUR_USER_NAME%/fs_mail.dump

次に、この行を/etc/postfix/main.cfに追加します。

default_transport = fs_mail

そして、Postfixサーバーを再起動します

Sudo /etc/init.d/postfix restart

そして、すべての送信メールをホームフォルダのfs_mail.dumpファイルに保存する必要があります(%YOUR_USER_NAME%を実際のユーザー名に置き換えます;))

5
x7_

Postfixに付属のsmtp-sinkユーティリティを使用できます。

smtp-sink -u root -d%d。%H.%M.%S 192.168.1.10:25 10

smtp-sinkはtimestamp.hexでファイルを書き出します

乾杯

P.S.

あなたはベストアンサーの受け入れにかなり迅速でした。

P.P.S.

あなたは特に接尾辞について言及したので、私はsmtp-sinkについて言及しましたが、fakemailはファイルを[email protected]として書き出すので、私見の方がうまく機能します。ここで、Nは同じアドレスのオカレンスです。 http://sourceforge.net/projects/fakemail/

4
HTTP500

1つの方法は、すべてのメールをローカルアカウントにリダイレクトすることです。

#main.cf

header_checks = regexp:/etc/postfix/header_checks

#/ etc/postfix/header_checks

/./   REDIRECT [email protected]
1
Reinaldo Gil

最も簡単な方法であるIMHOは、開発マシンでローカルの電子メールアドレスを作成し、そのアドレスへのすべてのメールをリダイレクトして後で破棄します。

いくつかのヒントについては ここ を見てください。

0
Mr Shunz