Tatsächlich ist die Antwort von Instyle sehr schwierig zu implementieren, wenn Sie viele verschiedene Domänen unterstützen möchten, und sie ist falsch, weil:
a) Mit seinem Beispiel von transport_maps
werden alle an diese Domain gesendeten E-Mails an diesen bestimmten Dienst gesendet, ohne dass es darauf ankommt, ob die E-Mails zurückgesendete E-Mails sind oder nicht. Da es sich um einen bestimmten Domainnamen handelt, sollten E-Mails zwar nur zurückgesendet werden ... dies kann jedoch nicht garantiert werden.
b) Die an Ihr Skript gesendeten Daten sind die E-Mail selbst und nicht die Bounce-Nachricht. Mit anderen Worten, Ihr Code hat möglicherweise keine Ahnung, warum die E-Mail zurückgeschickt wurde (dh durch lokales Zurückschicken erhalten Sie nur die ursprüngliche E-Mail).
Die korrekte Methode zur Einrichtung in Postfix ist die Verwendung der Bounce-Benachrichtigungsklasse.
1) In /etc/postfix/main.cf
notify_classes = bounce
bounce_notice_recipient = bounces@example.com
transport_maps = hash:/etc/postfix/transport_maps
2) In / etc / postfix / transport_maps
# when you make changes to this file, run:
# sudo postmap /etc/postfix/transport_maps
bounces@example.com bulkbounce:
Wie Sie sehen, weisen wir Postfix an, bounces@example.com
immer dann zu verwenden, wenn eine E-Mail zurückgeschickt wird. Dann in der Transportkarte, um bulkbounce
als Dienst zu verwenden, um jede E-Mail-Adresse zu verarbeiten bounces@example.com
.
Schließlich können Sie bulkbounce
mit Ihrem Skript definieren :
3) In /etc/postfix/master.cf
bulkbounce unix - n n - - pipe
flags=FRq user=bounce argv=/home/bounce/bin/snapbounce --sender ${sender} --recipient ${recipient}
Für dieses Skript benötigen Sie einen Benutzer. nobody
ist auch eine gute Wahl. Wenn Sie einen bestimmten Benutzer haben möchten, können Sie ihn erstellen mit:
useradd bounce
Ohne das Skript master.cf
werden die E-Mails an das Bulkbounce-Konto gesendet. Wenn Sie also ein Skript haben, das E-Mails aus Dateien analysiert, funktioniert dies ohne die Änderungen transport_maps
und master.cf
.
Aus einem Kommentar unten:
fyi - re: double bounces ...
Wenn Sie die Absenderadresse ändern (z. B. VERP-Adresse) user+id@fromdomain.com
, möchten Sie die Zeile in main.cf
für bounce_notice_recipient
auskommentieren, wenn Sie die +id
Bounce nur in Ihrem Skript analysieren möchten .
Message-Id
in Ihren Header einfügen können , muss diese zurückgesendet werden genug sein, um zu überprüfen, wer wer ist.