
メール スクリプトの開発/テストのために、すべてのメッセージを単一のメールボックスにリダイレクトするように postfix を構成する方法について、ここにはいくつかの回答があります。
私は、既存のメール サーバーで代替ポートを開き、そのポートに配信されるすべての SMTP メッセージを同じサーバー上のメールボックス (Dovecot、ローカル配信経由) にダンプするという、これのバリエーションを探しています。
私の問題は、smtpd が main.cf 内の設定を共有しており、別の postfix 環境全体を設定せずに smtpd の 2 番目のコピーを実行する方法がわからないことです。もっと簡単な解決策を探しています。
このsmtp-sink
プログラムはほとんどまさに私が求めていたものです。各メッセージを新しいファイルに書き込みますが、さらに、メール クライアントが簡単に確認できるように、ローカル配信経由で Dovecot にプッシュしたいと考えています。
これを実現する簡単な方法を誰かお勧めいただけませんか? SMTP をリッスン/読み取り、LMTP を書き込む Perl スクリプトでも構いません。
答え1
smtpd_recipient_restrictions
セカンダリポート(たとえばポート9925)をオーバーライドして、選択したメールボックス(たとえば[メールアドレス])。
master.cfのエントリ
9925 inet n - - - - smtpd
-o smtpd_recipient_restrictions=check_recipient_access,pcre:/etc/postfix/x.pcre,reject_unauth_destination
ファイル/etc/postfix/x.pcre
/.*/ REDIRECT [email protected]
この設定では、このポートに来るすべてのメールはPCREパターンに一致するため/etc/postfix/x.pcre
、postfixはそれを[メールアドレス]。
最後の仕事は、[メールアドレス]dovecot LMTP 経由で配信されました。