実際、多くの異なるドメインをサポートしたい場合、Instyleの答えを実装するのは非常に難しく、それは次の理由により間違っています。
a)の例ではtransport_maps
、そのドメインに送信されるすべての電子メールは、その電子メールがバウンス電子メールであるかどうかに関係なく、その特定のサービスに送信されます。特定のドメイン名を使用するため、実際にはバウンスされた電子メールのみである必要があります...しかし、そのように保証することはできません。
b)スクリプトに送信されるデータは、バウンスメッセージではなく、メール自体です。言い換えれば、あなたのコードは、なぜメールがバウンスされたのか分からないかもしれません(つまり、ローカルバウンスは元のメールのみを送信します)。
postfixでその設定を行う正しい方法は、バウンス通知クラスを使用することです。
1)/etc/postfix/main.cf
notify_classes = bounce
bounce_notice_recipient = bounces@example.com
transport_maps = hash:/etc/postfix/transport_maps
2)/ etc / postfix / transport_maps
# when you make changes to this file, run:
# sudo postmap /etc/postfix/transport_maps
bounces@example.com bulkbounce:
ご覧のとおりbounces@example.com
、メールがバウンスされるたびにpostfixを使用するようになりました。次に、トランスポートマップで、へのbulkbounce
電子メールアドレスを処理するサービスとして使用しbounces@example.com
ます。
最後にbulkbounce
、スクリプトで定義できます。
3)/etc/postfix/master.cf
bulkbounce unix - n n - - pipe
flags=FRq user=bounce argv=/home/bounce/bin/snapbounce --sender ${sender} --recipient ${recipient}
このスクリプトでは、ユーザーが必要です。nobody
良い選択です。特定のユーザーが必要な場合は、次の方法で作成できます。
useradd bounce
のスクリプトがないmaster.cf
場合、メールはバルクバウンスアカウントに送信されます。したがって、ファイルから電子メールを解析するスクリプトがある場合、これは変更なしで機能transport_maps
しmaster.cf
ます。
以下のコメントから:
fyi-re:double bounces ...
リターンアドレス(などのVERPアドレス)を変更する場合、スクリプトでのみバウンスの解析に関心がある場合は、のuser+id@fromdomain.com
行をコメントアウトする必要があります。main.cf
bounce_notice_recipient
+id
Message-Id
ます。誰が誰であるかを確認するのに十分です。