Frage

Kann jemand eine Software oder eine .NET-Bibliothek empfehlen, die nach zurückgesendeten E-Mails und dem Grund für den Rücksprung sucht?Ich erhalte unzustellbare E-Mails an ein Pop3-Konto, das ich dann lesen kann.

Ich benötige es, um meine Benutzerdatenbank von ungültigen E-Mail-Adressen freizuhalten, und möchte dies automatisieren (Benutzer als ungültige E-Mail markieren).

War es hilfreich?

Lösung

Ich habe mich viel mit Bounce-E-Mails und deren unterschiedlichen Typen beschäftigt.Wenn Sie absolut sicher sein möchten, dass es sich bei der E-Mail, die Sie betrachten, tatsächlich um einen Bounce einer bestimmten Art handelt, empfehle ich Ihnen dringend, einen guten Filter zu verwenden.Ich habe mit gearbeitet Boogie-Tools und es hat sehr gut funktioniert.Dadurch erfahren Sie, um welche Art von Absprung es sich handelt: Hart, Weich, Vorübergehend, oder ob sogar jemand versucht, sich abzumelden.Es verfügt über mehrere APIs, einschließlich .Net, und ich fand es recht einfach, mit der Arbeit zu beginnen.

Andere Tipps

als sagt abfo, das POP3-Protokoll ist supereinfach, der Empfang der Nachrichten ist ein Kinderspiel.Es ist schwieriger, die Nachrichten zu analysieren, um die Fehler zu ermitteln, und es ist wirklich schwierig, zuverlässig herauszufinden, welche E-Mail den Fehler verursacht hat und warum er fehlgeschlagen ist.Das Problem besteht darin, dass Bounce-Nachrichten kein Standardformat haben und die Standardformen von MTA zu MTA variieren.Dann kann der Site-Administrator den Fehlergrund so anpassen, dass er schwerer zu erkennen ist, und der Site-Administrator könnte die Fehlermeldungsvorlage ändern, was es nahezu unmöglich macht.

Sehen Sie nach, ob Sie einen .NET-Mailinglisten-Manager finden und ob Sie den Bounce-Handling-Code umfunktionieren können.Andernfalls prüfen Sie, ob Sie das Tool, das die Nachrichten sendet, so ändern können, dass jede E-Mail von einem eindeutigen (und umkehrbaren) Umschlagabsender gesendet wird (VERP, glaube ich, heißt das?).Auf diese Weise müssen Sie nicht den Text der E-Mail scannen, sondern können anhand der Empfängeradresse der Fehlermeldung erkennen, welcher Empfänger fehlgeschlagen ist.

Mit einem TcpClient ist das ziemlich einfach.Öffnen Sie den Server:

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

Lesen Sie die Willkommensnachricht:

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

Zurück zum Server schreiben:

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

Das sendet den USER-Befehl.Sie müssen sich anmelden und können dann mit dem Abrufen von Nachrichten beginnen – siehe POP3 RFC für die vollständige Liste der Befehle.Wenn Sie nicht auf der Suche nach einer eigenen Lösung sind, schauen Sie sich dies an CodeProject-Artikel.

Danke für die Antwort, großartig!Ich habe selbst etwas recherchiert und gefunden ListNanny - auch super einfach zu bedienen und zeigt Ihnen die Art des Sprungs an.Ich werde einen Proof of Concept schreiben und sehen, welches mir besser gefällt ...

Durch Ihre Frage wurde mir klar, dass das WordPress-Newsletter-Plugin, das ich verwenden wollte, kein Bounce-Management hatte und ich auch etwas brauchte.

Ich habe mich eine Weile umgesehen und mich für die kostenlose und Open-Source-Version entschieden PHPlist-Newsletter-Manager.

Sie beschreiben im Detail ihre Einstellungen für den Umgang mit Bounces und sie haben ein Experiment Erweiterte Bounce-Handhabungsfunktion Dadurch können Sie das Bounce-Handling genau nach Ihren Wünschen anpassen.

Selbst wenn Sie sich entscheiden, PHPlist nicht zu verwenden, wird es für Sie hilfreich sein, zu lesen, wie es funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top