Bounce Email Handling
Irki
0 Sven Rautenberg0 irki
0 Henryk Plötz
Grüß euch!
Ich habe folgendes Problem. Ich muss eine Mailbox auslesen (mit PHP), dann jede Nachricht checken, ob es sich um eine Email handelt, die mir sagt, das es die Emailaddresse nicht gibt, an die ich eine Email gesandt habe. An diese Mailbox kommen im Prinzip nur Fehlermeldungen. Jetzt habe ich aber das Problem, das jeder Mailserver mir anders antwortet.
Gibt es da irgendwelche Standards, wie solche Fehlermails ausschauen?
MFG Irki
Moin!
Ich habe folgendes Problem. Ich muss eine Mailbox auslesen (mit PHP), dann jede Nachricht checken, ob es sich um eine Email handelt, die mir sagt, das es die Emailaddresse nicht gibt, an die ich eine Email gesandt habe. An diese Mailbox kommen im Prinzip nur Fehlermeldungen. Jetzt habe ich aber das Problem, das jeder Mailserver mir anders antwortet.
Gibt es da irgendwelche Standards, wie solche Fehlermails ausschauen?
Nein, die gibts nicht.
Es gibt eigentlich nur einen Standard: Beim SMTP-Versand gibt der Mailserver einen eindeutigen Statuscode (samt einer beliebigen textlichen Botschaft) zurück. Wird der Mailempfang abgelehnt, erhälst du einen Status aus dem Bereich 5xx. Wird nur temporär der Empfang abgelehnt, ist der Status 4xx. Ist alles ok und die Mail angenommen, ist der Status 2xx. Allein dort solltest du schon mal eingreifen, denn das ist die Stelle, an der man am leichtesten erkennen kann, ob die Mailadresse belieferbar ist, oder nicht.
Wenn der Empfängermailserver aber so doof ist, erst einmal alle Mails anzunehmen, um dann im nachträglich festgestellten Fehlerfall einen Bounce zu schicken, dann mußt du diese Fehlermail im Prinzip manuell auswerten.
Natürlich ähneln sich je nach Mailserver die Botschaften, d.h. eine simple Texterkennung könnte durchaus Erfolg haben, sobald du ein paar Bounces analysiert hast.
- Sven Rautenberg
Danke für die Antwort.
Dann muss ich wohl oder übel mal so bounce mails manuell durcharbeiten.
MFG Irki
Moin,
Ich habe folgendes Problem. Ich muss eine Mailbox auslesen (mit PHP), dann jede Nachricht checken, ob es sich um eine Email handelt, die mir sagt, das es die Emailaddresse nicht gibt, an die ich eine Email gesandt habe. An diese Mailbox kommen im Prinzip nur Fehlermeldungen. Jetzt habe ich aber das Problem, das jeder Mailserver mir anders antwortet.
Gibt es da irgendwelche Standards, wie solche Fehlermails ausschauen?
Es gibt zumindest ein starkes Indiz: Der leere Envelope-Sender (also <>) wird in der Regel für Fehlermeldungen benutzt, so verhindert man dass die Fehlermeldungen Fehlermeldungen genieren die Fehlermeldungen generieren die ...
Nun gibt es leider ein paar komische Leute die das nicht so machen und da irgendeinen Mist reinschreiben (besonders bei neunmalklugen Virenscannern scheint das beliebt zu sein), deswegen benutzen die meisten Mailinglisten und andere Systeme die automatisiert Bounces erkennen müssen in der Regel einen einfachen Trick: Beim Abschicken der eigentlichen Mail (die evt. bounced) setzen sie als Envelope-Sender eine Addresse die sonst nirgendwo verwendet wird (sowas wie foo-bounce_hierdiezielemailaddressecodiert@foodomain.example.com). Wenn dann eine Mail zurück kommt (aus welchen Gründen auch immer) geht die Fehlermeldung an den Envelope-Sender (gut, ausser natürlich bei den quadratisch doofen Virenscannern die an das Header-From: schreiben ;-) und die vorher präparierte Addresse liegt dann als Envelope-To vor.
Dann kann man relativ leicht alle Addressen raussuchen an die gesendete Mails nicht ankommen (und diese zum Beispiel von der Mailingliste nehmen). Wenn du wissen willst _welche_ Mail zurückgekommen ist musst du halt noch irgendeine Seriennummer und/oder einen zufälligen String in den Envelope-Sender tun und dir das merken.