Frage

Wie programmatisch ich eine eingehende E-Mail mit .NET lesen. Ich brauche eine Methode, den Inhalt der E-Mail-Nachricht zu nehmen (in diesem Fall XML) auf einem POP-Server und es in meine Anwendung zu lesen.

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

  • .NET-Code, die ich als ein laufen kann Hintergrundaufgabe auf meinem Webserver verarbeitet die E-Mail.
  • Ein Dienst, der die Inhalte veröffentlichen können die E-Mail auf meinen Webserver.

Obwohl ich bin offen für andere Optionen.

EDIT: Kopiert von der "Nicht-Antwort":

  

Zur Zeit suchen wir bei Verwendung der   E-Mail-Konten unseres Hosting-Unternehmen   bereitstellt.

     

Unser eigener Mail-Server könnte potenziell   eine Option sein, aber es ist etwas, das   wir bräuchten den Host über.

Kontakt
War es hilfreich?

Lösung

Wir haben gerade wirklich die gleiche Art von Sache umgesetzt.

Wir verarbeiten den Inhalt von E-Mails und drücken Sie die Daten in unserem CRM über einen Webservice. Wir verwenden c # mit .NET 3.5

die E-Mail bearbeiten wir mit IMap ging. Es gibt ein paar .net-Client-Bibliotheken auf Codeproject. Ich denke, wir haben das man von LumiSoft .

Wir haben versucht, WebDav aber hatte nicht viel Glück. Dies ließ uns mit POP3- oder IMAP-. IMap unterstützt Ordner, die wir brauchten, und so gingen wir mit dem. Ich bin sicher, es wäre leicht, die gleiche Sache mit POP3 zu tun, wenn der Server nicht IMap nicht unterstützt.

Im Grunde verbinden wir unsere Exchange-Server jede Stunde und nach unten ziehen jede neue E-Mail und verarbeiten sie. Bisher funktioniert es gut.

Edit: Wir verwenden auch SharpMimeTools die rohen E-Mails in ein besser benutzbar zu erhalten Format.

Andere Tipps

Es gibt durchaus ein paar Optionen, falls Sie einen Service-Bus zu Verfügung haben es meistens mit einem POP3- Adapter kommt.

Sie können auch eine pop3 api verwenden (Easymail von quiksoft ist ein ziemlich guter). Es hat auch ein großes Produkt für Bounces verarbeitet werden.

Um alle SMTP-Nachrichten zu lesen. Wenn Sie den Mail-Server besitzen, abhängig von der Art des Servers gibt es andere Möglichkeiten, um die Nachrichten zu bekommen, manchmal benutzerdefinierte Apis und Plug-in, oder das Dateisystem. Haben Sie Ihren eigenen Mail-Server hosten? Welche Mail-Server verwenden Sie?

Wenn möglich, würde ich nicht für das POP-Protokoll wählt, hat es einige Einschränkungen unter anderem wie nur einen Ordner mit „immer / Lesen“ eine Nachricht, um die Nachricht aus dem Ordner entfernt (was bedeutet, dass ein Prozess um die Nachrichten zu lesen) Und andere Dinge. Je nachdem, wie viele Mails, die Sie analysieren müssen es immer noch für Sie arbeiten könnte. 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();

IceWarp der Merak E-Mail-Server war groß dafür. Es lassen Sie uns Einrichtung eine besondere Art von Konto ein ausführbares Konto genannt. Sie ordnen eine .exe mit der E-Mail-Adresse und ein paar Dinge holen auf der Kommandozeile zu senden. Wenn eine E-Mail an dieses Konto gesendet bekommen, feuert sie die ausführbare Datei aus. Die Exe hat eine Konsolenanwendung sein und Sie müssen darauf achten, dass sie nicht hängen und was nicht, aber ich dachte, dass es die perfekte Lösung war.

Wir verwenden es, die Verarbeitung der Statistiken von Google Analytics zu handhaben und Bounces von anderen Mail-Servern.

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

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