2009-01-15 17 views
7

Wie programmiere ich eine eingehende E-Mail mit .NET programmatisch? Ich brauche eine Methode, um den Inhalt der E-Mail-Nachricht (in diesem Fall XML) auf einem POP-Server zu lesen und in meine Anwendung einzulesen.Eingehende E-Mails verarbeiten

  • .NET-Code, die ich als Hintergrund Aufgabe auf meinem Webserver der E-Mail Prozess ausführen kann:

    Im Idealfall könnte dies durch gelöst werden.

  • Ein Dienst, der den Inhalt der E-Mail an meinen Webserver POST kann.

Obwohl ich für andere Optionen offen bin.

EDIT: Kopiert von der „Nicht-Antwort“:

Derzeit suchen wir die E-Mail-Konten unsere Hosting-Unternehmen bietet bei Verwendung.

Unser eigener Mail-Server könnte möglicherweise eine Option sein, aber es ist etwas, das wir über den Host kontaktieren müssten.

+0

ähnliche Fragen: * http://stackoverflow.com/questions/86553/working-with-pop-imap-email-and-net * http://stackoverflow.com/questions/126068/how-whould-you-implement-database-updates-via-email * http://stackoverflow.com/questions/44383/reading-email-using-pop3-in- c –

+0

Versuchen Sie OpenPop.NET: https://www.nuget.org/packages/OpenPop.NET/ – razon

Antwort

4

Wir haben eigentlich nur die gleiche Art von Sache umgesetzt.

Wir verarbeiten den Inhalt von E-Mail-Nachrichten und leiten die Daten über einen Webservice in unser CRM-System ein. Wir verwenden C# mit .net 3.5

Um die Mail zu bearbeiten, gingen wir mit IMAP. Es gibt einige .net Client-Bibliotheken in CodeProject. Ich denke, wir haben das von LumiSoft verwendet.

Wir haben WebDav versucht, hatten aber nicht viel Glück. Das hat uns mit Pop3 oder IMap verlassen. IMap unterstützt Ordner, die wir brauchten, also gingen wir damit um. Ich bin mir sicher, es wäre einfach, dasselbe mit POP3 zu machen, wenn Ihr Server IMAP nicht unterstützt.

Grundsätzlich verbinden wir unseren Exchange-Server stündlich und ziehen jede neue E-Mail herunter und verarbeiten sie. Bis jetzt funktioniert es gut.

Bearbeiten: Wir verwenden auch SharpMimeTools, um die rohen E-Mails in einem besser nutzbaren Format zu erhalten.

1

Es gibt einige Optionen, falls Sie einen Service-Bus zu Ihrer Verfügung haben, kommt er meistens mit einem pop3-Adapter.

Oder Sie können eine pop3 API verwenden (easymail von quiksoft ist eine ziemlich gute). Es hat auch ein großartiges Produkt für die Verarbeitung von Bounces.

Um alle SMTP-Nachrichten zu lesen. Wenn Sie den Mailserver besitzen, gibt es je nach Art des Servers andere Möglichkeiten, um zu den Nachrichten zu gelangen, manchmal benutzerdefinierte Apis und Plugins oder das Dateisystem. Hosten Sie Ihren eigenen Mailserver? Welchen Mailserver benutzen Sie?

Wenn möglich würde ich nicht für das POP-Protokoll wählen, es hat einige Einschränkungen unter anderem nur mit einem Ordner, "bekommen/lesen" eine Nachricht entfernt die Nachricht aus dem Ordner (was bedeutet, einen Prozess, um die Nachrichten zu lesen) Und andere Dinge. Abhängig davon, wie viele Mails Sie analysieren müssen, funktioniert es möglicherweise noch für Sie. IMAP wäre schon eine Verbesserung.

Mit der quiksoft IMAP-Komponente:

//create a new IMAP4 object, connect 
//to a IMAP4 server and login 
IMAP4 imap = new IMAP4(); 
imap.Connect("mail.yourdomain.com"); 
imap.Login("mailbox", "password"); 

//select the inbox and download the envelopes 
imap.SelectMailbox("Inbox"); 
EnvelopeCollection imapEnvelopes; 
imapEnvelopes = imap.GetEnvelopes(); 

//loop through each message 
//and output the subject 
foreach (Envelope imapEnvelope in imapEnvelopes) 
{ 
    //write the subject out to the console 
    Console.WriteLine(imapEnvelope.Subject); 
} 

//close resources 
imap.Logout(); 
0

IceWarp Merak E-Mail-Server war großartig dafür. Es ermöglichte uns, eine spezielle Art von Konto einzurichten, das als ausführbares Konto bezeichnet wird. Sie verknüpfen eine E-Mail mit der E-Mail-Adresse und wählen eine Reihe von Dingen aus, die über die Befehlszeile gesendet werden sollen. Wenn eine E-Mail an dieses Konto gesendet wird, wird die ausführbare Datei ausgelöst. Die .exe muss eine Konsolen-App sein und Sie müssen darauf achten, dass sie nicht hängen bleibt und was nicht, aber ich dachte, es wäre die perfekte Lösung.

Wir verwenden es, um Verarbeitungsstatistiken von Google Analytics und Bounce-Backs von anderen Mail-Servern zu verarbeiten.

+0

+1 für den Merak Mail-Server, es ist ein großartiges Produkt. Die Art und Weise, wie es ein DLL-Plugin ermöglicht, ist auch großartig für die Verarbeitung der Bounces. –

0

Sie könnten immer DIY A POP 3 Class POP eine der einfacheren Protokolle ist

Verwandte Themen