Was ist der beste Weg, um die Header von zurückgesendeten (unzustellbaren) E-Mails, die an meinen Server zurückgesendet werden, zu analysieren und festzustellen, ob es sich um einen weichen oder einen harten Absprung handelt?
Ich sende nur Opt-In-E-Mails an meine Benutzer, aber gelegentlich sind einige E-Mail-Adressen veraltet. Wenn eine E-Mail auf meinen Server zurückspringt, möchte ich herausfinden, warum sie zurückgeschickt wurde (weich / hart). Dann kann ich in meiner Datenbank angemessen damit umgehen und / oder den Benutzer markieren, um seine E-Mail bei der nächsten Anmeldung zu aktualisieren.
Ich benutze Ubuntu und Postfix. Ich habe VERP erfolgreich mit Aliasen und virtuellen Aliasen implementiert. So haben zurückgesendete E-Mails den Rückweg [email protected] , und ich kann sie an ein Skript weiterleiten .
Nachdem ich VERP eingerichtet habe, weiß ich, an wen die ursprüngliche E-Mail gesendet wurde, aber ich muss die zurückgegebenen E-Mail-Header analysieren, um herauszufinden, ob es sich um einen weichen oder einen harten Sprung handelt.
Was ist der beste Weg, um damit umzugehen? Soweit ich weiß, spielen nicht alle Mailserver nach denselben Regeln, und Header können verschiedene Formate haben. Gibt es ein Open-Source-Projekt, das diese Art von Dingen verfolgt? Etwas Einfaches, das ich implementieren kann und das die meisten Bounces richtig kategorisiert?
Ich versuche, den Ruf meines Mailservers zu schützen, daher ist jede Hilfe sehr willkommen!
quelle
grep " dsn=5." /var/log/mail.log | pcregrep -o1 " to=<(.+?)>" | sort | uniq -c
Im Allgemeinen gibt es zwei Arten von Bounces
Der erste Fall wurde bereits durch eine ausgezeichnete Antwort von Esa Jokinen oben abgedeckt . Ihre beste Wette ist das Parsen von Maillog.
Der zweite Fall war ein Sonderfall von Bounces. Das Beispielszenario:
Hier springt das Beispiel des zweiten Typs E-Mails. Es gibt eine Weiterleitungsregel für den Yahoo-Mailserver [email protected] -> [email protected] . Leider lehnt der Mailserver von example.net die Nachricht ab :(
In diesem Fall besteht Ihre einzige Methode darin, die Bounces-Nachricht zu analysieren. Leider gibt es kein Standard-Bounces-Format, daher müssen Sie den Body analysieren und die verursachte Zurückweisung ermitteln.
Die Feature-Checkliste für Ihr Postfix-Bounce-Parsing:
Für die zweite Funktion können Sie einige allgemeine Ablehnungsnachrichten googeln. Das Beispiel ist diese bounce-regex-list.xml von Jakub Liska .
Esa Jokinen hat im folgenden Kommentar einen guten Punkt zu diesen beiden Sprungtypen gemacht. Wenn es Ihr Ziel ist, die Server-Reputation beizubehalten, sollte es ausreichen, den ersten Bounce-Typ zu verwenden. Beim zweiten Sprung ging es darum, Ihre Listen zu bereinigen. Daher sollten tote E-Mails gelöscht werden, um einige Ressourcen auf Ihrem Server freizugeben.
Einige Mailinglisten-Manager wie PHPlist und Mailman beschäftigen sich auch mit diesem Bounce-Problem beim Parsen des E-Mail-Körpers, da sie keine Ressourcen zum Parsen des Maillogs haben.
quelle