Bounce Handling

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
lsd
Posts: 3
Joined: 2009-06-11 10:23
 

Bounce Handling

Post by lsd »

Guten Morgen zusammen,

ich habe einige Frage zu Postfix und dem Bounce Handling. Stundenlanges Suchen bei Google konnte mir leider keine Antworten liefern, daher hoffe ich, dass ihr mir vielleicht helfen könnt:

Die Rahmengeschichte: Ich betreibe eine Community mit 300k Mitgliedern, an die ich einen Newsletter verschicken möchte. Leider sind ca. 20% der eMailadressen nicht mehr gültig und die Mails schwimmen daher ewig lang in der Mail-Queue herum, bis der Versand endlich abgebrochen wird. Das legt mir dann irgendwann den gesamten Mailversand lahm ;-(

1) Wenn ich die bounce_queue_lifetime auf 0 setzen würde und für jede Mail nur ein Zustellversuch unternommen wird - was schätzt ihr wie viele korrekte Empfänger ich dann verlieren würde? Sind das vernachlässigbar wenige?

2) Habt ihr eine Idee, wie ich die "toten" eMailadressen automatisch an ein Skript übergeben bzw. automatisiert auslesen könnte?

Ich hoffe ihr könnt mir ein paar Tipps geben.. Tausend Dank schonmal!

Beste Grüße,
Lukas
User avatar
mattis
Posts: 41
Joined: 2008-12-30 17:44
Location: Bayern
 

Re: Bounce Handling

Post by mattis »

LsD wrote:Habt ihr eine Idee, wie ich die "toten" eMailadressen automatisch an ein Skript übergeben bzw. automatisiert auslesen könnte?
Z.B. http://www.openemm.org installieren
danton
Posts: 47
Joined: 2006-01-10 17:45
 

Re: Bounce Handling

Post by danton »

Also zu deiner zweiten Frage kann ich dir einen Tipp geben. Ich wollte bei mir auch die ungültigen E-Mail-Adressen in meinem Forum ermitteln. Dazu habe ich erst mal mein Newsletter-Script dahingehend angepaßt, daß es VERP verwendet, beim Sender also sowas in der Art steht: forum-bounce+name=example.com@mydomain.de (für den Empfänger name@example.com). Auf der E-Mail-Adresse forum-bounce@mydomain.de lauscht nun ein Script, daß die eingehenden Mails verarbeitet. Dank VERP kann ich die bouncende Adresse aus der Empfänger-Adresse ablesen und brauche keine großen Parse-Routinen, die im Text der Bounce-Nachricht nach der E-Mailadresse suchen (ja, ich habe es mir einfach gemacht). Das Script setzt bei mir an ein Flag in der Datenbank und die Adresse wird beim nächsten Newsletter nicht mehr versandt. Falls sich doch mal eine normale E-Mail dahin verirrt, schickt mir das Script für jede ankommende Mail eine Nachricht, in der auch die ursprüngliche Nachricht enthalten ist.
Zu deiner ersten Frage: Eigentlich sollten finale Zustellfehler direk bouncen und gar nicht lange in der Mail-Queue bleiben. Allerdings habe ich u.a. bei Web.de und Yahoo beobachtet, daß beim Versand eines Newsletters einige Empfänger bei diesen Providern mehrere Zustellversuche brauchten, bis dieser die Mail angenommen hat (und damit meine ich gültige Adressen). Da kann man dann leider nur wenig machen...
lsd
Posts: 3
Joined: 2009-06-11 10:23
 

Re: Bounce Handling

Post by lsd »

Hallo Leute,

danke für eure Antworten! Die Idee mit dem Auswerten der zurück kommenden Mails hatte ich auch schon.

Mein Problem dabei:
Die Mails werden mit PHP über die mail()-Funktion verschickt und ich erhalte bei einem Bounce keine Antwort-Mail von Postfix.
Wenn ich die Mail über SMTP manuell an eine Fehlerhafte Adresse verschicke, bekomme ich eine Antwort, wenn die Mail von PHP kommt nicht.

Habt ihr eine Idee dafür?

Momentan habe ich einfach nur einen Eintrag in der mail.info, den ich theoretisch auswerten könnte:
(sfds3s33s33@gmx.de ist eine nicht existierende Adresse)

Code: Select all

Jun 11 15:42:43 srv01 postfix/pickup[15606]: 36BE8249842C: uid=30 from=<wwwrun>
Jun 11 15:42:43 srv01 postfix/cleanup[16500]: 36BE8249842C: message-id=<20090611134243.36BE8249842C@srv01.xxx.de>
Jun 11 15:42:43 srv01 postfix/qmgr[15607]: 36BE8249842C: from=<wwwrun@srv01.xxx.de>, size=7281, nrcpt=1 (queue active)
Jun 11 15:42:43 srv01 postfix/smtp[15623]: 36BE8249842C: to=<sfds3s33s33@gmx.de>, relay=mx1.gmx.net[213.165.64.102], delay=0, status=bounced (host mx1.gmx.net[213.165.64.102] said: 550 5.1.1 <sfds3s33s33@gmx.de>... User is unknown {mx013} (in reply to RCPT TO command))
Jun 11 15:42:43 srv01 postfix/qmgr[15607]: 36BE8249842C: removed
Könnte man diese Info über den Bounce von Postfix an ein Skript übergeben lassen oder diese Log-Datei irgendwie auswerten? Das müsste ja eigentlich der sicherste Weg sein, da man direkt auch die Info über den Grund des Bounce bekommt..

Besten Dank und viele Grüße,
Lukas
danton
Posts: 47
Joined: 2006-01-10 17:45
 

Re: Bounce Handling

Post by danton »

Der Bounce geht an wwwrun@srv01.xxx.de und die Adresse gibt es wahrscheinlich nicht. Du kannst aber der PHP-Funktio mail() also fünften Parameter die Adresse für Bounces mitgeben - das ist in der PHP-Doku zu mail() sogar beschrieben und darüber steuer ich das nämlich auch.
lsd
Posts: 3
Joined: 2009-06-11 10:23
 

Re: Bounce Handling

Post by lsd »

Vielen Dank!

Mit dieser Funktion und der Software "eMail Bounce Handler" klappt es!

Es wäre zwar noch schöner gewesen alle Bounce-Mails direkt von einem Skript auf dem Server verarbeiten zu lassen, aber mit dieser Lösung kann ich gut leben ;-)

Ciao und ein schönes Wochenende,
Lukas