2010-12-11 8 views
1

Die Benutzer meiner App können E-Mails an mehrere Personen senden. Einige der E-Mails sind möglicherweise ungültig. Ich muss den Benutzer wissen lassen, welche E-Mails zurückgewiesen wurden.Wie gehen Sie mit E-Mails um?

Ist das möglich? Wenn ja, sind alle Hinweise hilfreich.

Ich benutze .NET, C#, um E-Mails zu senden. Ich verwende keine Drittanbieter-Tools, um E-Mails zu versenden.

Dank

+3

Es gibt keine zuverlässige Möglichkeit festzustellen, ob eine E-Mail zugestellt wurde. –

Antwort

1

Ich habe dies vor ein paar Jahren mit http://mailsystem.codeplex.com/ getan. Es ist jetzt Open Source, aber es kostet mich Geld damals.

Sie erhalten eine Nachricht zurück, die auf einen Bounce hinweist, und im Code befinden sich Eigenschaften, die Ihnen den ursprünglichen Absender geben, damit Sie ihn ordnungsgemäß übermitteln können.

+0

Natürlich habe ich nicht erwähnt, dass ich bestimmte E-Mails an einen SMTP-Ordner weiterleiten musste, den ich überwachte. – phillip

+0

kann es behandeln, wenn es mehrere Absender gibt und die gleiche E-Mail von jedem Absender verwendet werden kann – kheya

+0

Sicher kann es. Die von mir entwickelte Anwendung hat täglich mehr als 50.000 Nachrichten verarbeitet. Die E-Mail war in allen verschiedenen Formaten mit Anhängen. Und dieser Code (den Sie verwenden können) war die Mail-Komponente. Es ist ziemlich robust. – phillip

-1

A „bounce“ geht in der Regel zurück an den Absender der E-Mail, nicht Ihre Anwendung. Es ist nicht wirklich so konzipiert, dass es von einer Anwendung so gehandhabt wird, wie Sie es vorschlagen. Der (die) Benutzer sollten eine Benachrichtigung über den Bounce von dem (den) betreffenden E-Mail-Server (n) erhalten (vorausgesetzt, alles geht gut, da OMG Ponies sagte, dass es wirklich keinen zuverlässigen Weg gibt).

Damit Ihre Anwendung der Empfänger des Bounce ist und auf eine sinnvolle Weise darauf reagiert, müsste eine Menge Arbeit auf Ihrer Seite geleistet werden. Ihre Anwendung müsste im Grunde der Mail-Server für das Benutzerkonto sein, in dessen Auftrag die E-Mails gesendet werden. Es muss Port 25 abhören und eingehende Nachrichten auf Bounces analysieren.

Dies ist keine triviale Aufgabe. Nur "ein Mail-Server zu sein" funktioniert in der Theorie gut, außer dass die meisten anderen Mail-Server der Welt Sie ignorieren werden, es sei denn, Sie sind eine richtige Domäne mit korrekten MX-Datensätzen und all dem. Wenn Sie eingehende Daten an Port 25 abhören, erwarten Sie eine Menge Rauschen.

Es ist am besten, die Benutzer die Bounces richtig empfangen zu lassen, indem die Mail in ihrem Namen gesendet wird.

+0

Ich brauche die einfache und schnelle Lösung. Dies ist die wichtigste Voraussetzung. Momentan stelle ich die Email Adresse auf '[email protected]'. Wenn ich also die E-Mail-Adresse des Absenders als die Absenderadresse einstelle, werden die E-Mails, die zurückgeschickt werden, an den Nutzer und nicht an meine App weitergeleitet, richtig? – kheya

+2

Sie müssen Port 25 nicht verwenden. Sie können einen Mailserver für einen Ordner in einen Ordner weiterleiten lassen. Sie müssen nicht der Endpunkt sein und keine MX-Datensätze werden geändert. Sie haben fast alle diese Funktion. – phillip

+0

@phillip: Das ist wahr genug, daran habe ich nicht gedacht. @Projapati: Das ist wahrscheinlich deine beste Wette. Lassen Sie den Mailserver des Unternehmens Nachrichten für '[email protected]' speichern, um sie in einen Ordner zu verschieben. Dann kann Ihre Anwendung einen 'FileSystemWatcher' verwenden, um diesen Ordner zu überwachen und die eingehenden Nachrichten zu analysieren. Auf der Grundlage ihres Inhalts müssen Sie sie mit dem entsprechenden Benutzer abgleichen und das Benachrichtigungssystem verwenden, das Ihre Anwendung möglicherweise bereits besitzt, um diesen Benutzer zu informieren. – David

Verwandte Themen