1

バウンスを解析できるように、Python でメールを送信できるようにしたいと考えています。VERPはこれに対する解決策のようです。ただし、送信元アドレス (MIMEMultipart オブジェクトの「送信元」値ではない) に VERP 区切り文字を含めるように設定すると、バウンス通知が届きません。

独自の VERP 送信者を作成することはできますか (つまり、user@domain.com に送信するには、その受信者の From: アドレスを「mysender+user-domain-com.mydomain.com」に設定するだけでよいでしょうか)、それが機能することを期待できますか?または、何らかの方法で失敗した DSN を正しく解析するように postfix を構成する必要がありますか? 私の問題は、これを行ったときにメッセージが有効な受信者に配信されないという失敗通知の受信です。

例が役立つかもしれません。

myuser@domain.com からメールを送信すると、問題なくバウンス通知を受け取ります。

myuser+verp_identifier@domain.com からメールを送信すると、バウンス通知が届きません。(たとえば、valid_user@gmail.com などの宛先の電子メールは問題なく送信されます。) Perl の Mail モジュールには Verp サブモジュールがありますが、Python にはこのようなものがありますか?

4

2 に答える 2

1

VERP を正しく処理するには、Postfix を特別に構成する必要があります。smtpd_authorized_verp_clientsVERP の使用を許可するクライアントの一覧は、送信部分のみを構成します。実際、エンベロープの+dest送信者アドレスに自動的に追加する XVERP コマンドの使用を許可されたクライアントを一覧表示します。

しかし、デフォルトの設定では、Postfix はに送信されたメッセージを自動的に配信しませ。これを機能させるには、 を追加 (またはコメント解除) する必要があります。デフォルトの構成では、この行は存在しますが、コメントアウトされています。sendersender+extrecipient_delimiter = +main.cf

したがって、独自の VERP 送信者アドレスを作成できる場合、つまり、エンベロープ送信者アドレスがmyuser+verpid@domain.comである場合、次の条件が満たされていれば、何もする必要はありませんrecipient_delimiter = +: 宛先 SMTP サーバーはそのアドレスにバウンスを送信し、Postfix はそれを myuser@domain に正しく配信します。コム。

XVERBコマンドを自動的に追加するpythonパッケージを知りません。したがって、自動的に使用する場合は、Postfix VERP Howtoで説明されている次のレシピに従う必要があります。

smtpd_command_filter 機能を使用して、レガシー ソフトウェアからの SMTP コマンドに XVERP を追加できます。これには Postfix 2.7 以降が必要です。

/etc/postfix/main.cf:
    smtpd_command_filter = pcre:/etc/postfix/append_verp.pcre
    smtpd_authorized_verp_clients = $mynetworks

/etc/postfix/append_verp.pcre:
    /^(MAIL FROM:<listname@example\.com>.*)/ $1 XVERP
于 2014-05-19T22:20:26.147 に答える