2008-08-10 5 views
10

Kann jemand Software oder eine .NET-Bibliothek empfehlen, die nach unzustellbaren E-Mails und dem Grund für den Bounce sucht? Ich bekomme E-Mails in einen Pop3-Account, den ich dann lesen kann.Automatisch abgefangene E-Mails über POP3 prüfen?

Ich brauche es, um meine Benutzerdatenbank von ungültigen E-Mail-Adressen sauber zu halten und diese zu automatisieren (Benutzer als ungültige E-Mail markieren).

Antwort

5

Ich habe eine Menge Arbeit mit Bounce-E-Mails und dort verschiedene Arten getan. Wenn Sie absolut sicher sein wollen, dass die E-Mail, die Sie ansehen, tatsächlich ein Bounce einer bestimmten Art ist, dann empfehle ich Ihnen, einen guten Filter zu bekommen. Ich habe mit Boogie Tools gearbeitet und es hat sehr gut funktioniert. Es lässt Sie wissen, welche Art von Bounce es ist, Hard, Soft, Transient oder wenn es jemand ist, der sich abmelden will. Es hat eine Vielzahl von APIs einschließlich .Net und ich fand es ziemlich einfach zu arbeiten.

2

Es ist ziemlich einfach mit einem TcpClient zu tun. Öffnen Sie den Server:

TcpClient tcpClient = new TcpClient(); 
tcpClient.Connect(POP3Server, POP3Port); 
NetworkStream stream = tcpClient.GetStream(); 

Lesen Sie die Begrüßungsnachricht:

int read = stream.Read(inBuffer, 0, inBuffer.Length); 
string response = Encoding.ASCII.GetString(inBuffer, 0, read); 
if (response.IndexOf("+OK") != 0) throw new ...; 

schreiben zurück an den Server:

byte[] outBuffer = Encoding.ASCII.GetBytes("USER " + account + "\r\n"); 
stream.Write(outBuffer, 0, outBuffer.Length); 

, dass der Benutzer Befehl sendet. Sie müssen sich anmelden und dann können Sie beginnen, Nachrichten zu erfassen - siehe POP3 RFC für die vollständige Liste der Befehle. Wenn Sie nicht versuchen, Ihre eigenen zu überprüfen, diese CodeProject article.

3

als abfo says, das POP3-Protokoll ist super einfach, die Nachrichten bekommen ist ein Klacks. Das Analysieren der Nachrichten, um die Fehler zu erhalten, ist schwieriger und zuverlässig zu analysieren, welche E-Mail den Fehler verursacht hat und warum es fehlgeschlagen ist, ist wirklich schwierig. Das Problem besteht darin, dass Bounce-Nachrichten kein Standardformat haben, die Standardformulare variieren von MTA zu MTA. Dann kann der Fehlergrund durch den Site-Administrator optimiert werden, was es schwieriger macht, ihn zu erkennen, und der Site-Administrator könnte die Fehlermeldungsvorlage modifizieren, die ihn nahezu unmöglich macht.

Sehen Sie, ob Sie einen .NET-Mailing-Listen-Manager finden können und ob Sie den Bounce-Handling-Code wiederverwenden können. Ist das nicht der Fall, sehen Sie, ob Sie das Tool, mit dem die Nachrichten gesendet werden, ändern können, um jede E-Mail von einem eindeutigen (und reversiblen) Enveloper-Absender zu senden (VERP, ich glaube, es heißt?). Auf diese Weise müssen Sie den Hauptteil der E-Mail nicht scannen. Sie können feststellen, welcher Empfänger fehlgeschlagen ist, indem Sie die Empfängeradresse der Fehlernachricht untersuchen.

0

Danke für die Antwort, großartig! Ich habe selbst etwas recherchiert und gefunden ListNanny - auch super einfach zu bedienen und sagt Ihnen die Art des Bounce. Will ein paar Proof of Concept schreiben und sehen, welche ich besser mag ...

0

Ihre Frage machte mir klar, dass das Wordpress-Newsletter-Plugin ich verwenden würde, hatte keine Bounce-Management, und ich würde auch etwas brauchen .

Ich sah mich für eine Weile, und ich habe mich auf die freie und Open-Source-PHPlist newsletter manager festgelegt.

Sie beschreiben im Detail und sie haben eine experimentelle advanced bounce handling feature, mit der Sie die Bounce-Handhabung genau so anpassen können, wie Sie möchten.

Evem, wenn Sie sich entscheiden, PHPlist nicht zu verwenden, lesen, wie sie es tun, wird nützliche Information für Sie sein.