2016-04-25 2 views
1

Nach ein paar Stunden MAIL-Recherche (viele viele Fragen dazu) habe ich mich selbst die Frage gestellt, da ich eine Antwort nicht vollständig finden kann antwortet mir.Erhalten 'Standard' FROM Adresse, wenn keine FROM Adresse gegeben wird .NET.Mail

Für eine meiner Anwendungen baue ich eine Mailing-Klassenbibliothek mit System.Net.Mail, die ausgehende Mails über SMTP verarbeitet. Die FROM-Adresse ist ein optionaler Parameter, wenn sie nicht angegeben wird, sollte der Code die FROM-Adresse setzen.

Da nicht alle Mail-Clients die gleichen sind, möchte ich etwas bauen, das die richtige FROM-Adresse bekommt.

Nach einigen Recherchen fand ich heraus, dass ich die UserPrincipal.Current.EmailAddress verwenden kann, um dies zu erreichen, aber ich fand heraus, dass der Wert EmailAddress nicht immer im Active Directory vorhanden ist.

Die Frage ist, gibt es eine Möglichkeit, immer die FROM-Adresse zu bekommen oder ist das rückgängig? Oder sollte ich es nur auf die am häufigsten verwendeten Mail-Clients wie Outlook und Google Mail beschränken?

+0

Realistisch können Sie nicht sagen, was ist die "richtige" E-Mail-Adresse, zum Beispiel können Sie meinen Laptop alles, was Sie wollen, durchkämmen, ich keine E-Mail-Anwendungen darauf ausführen. Aber ich habe eine Reihe von E-Mail-Adressen, und eine, die meine bevorzugte sein würde, aber nur ich weiß, was das ist. AD Lookups funktionieren am besten, wenn ein lokaler Exchange-Server verwendet wird, dies ist jedoch nicht immer der Fall. – BugFinder

Antwort

2

Die meisten SMTP-Server, die für die Verwendung in der Produktion eingerichtet sind, lassen "nicht vom Spoofing" zu. Mit anderen Worten, sie benötigen die FROM-Adresse, die für die Anmeldung bei SMTP verwendet wird. Während es in der SMTP-Spezifikation nichts gibt, was diese Praxis erfordert, trifft dies auf die Anwesenheit von Spammern zu.

Das Abrufen der E-Mail-Adresse von ActiveDirectory kann auch abgeleitet werden, wenn sie nicht explizit festgelegt ist. Das ActiveDirectory wird innerhalb einer Domäne eingerichtet, sodass die E-Mail-Adresse userId + '@' + activeDirectoryDomain lautet. Der Ort, an dem dies zu einem Problem wird, ist, wenn Sie eine anspruchsbasierte Authentifizierung von Dritten verwenden und die dritte Partei den E-Mail-Anspruch nicht erfasst. Zum Beispiel stellen Facebook und Google-Authentifizierung eine E-Mail-Adresse zur Verfügung, die Twitter-Authentifizierung dagegen nicht.

In allen Fällen sollte eine Standard-E-Mail-Adresse des Systems vorhanden sein. Sie müssen sich mit den Personen abstimmen, die den SMTP-Dienst verwalten, aber sie können eine E-Mail-Adresse ohne Antwort für ausgehende E-Mails einrichten. Das wäre Ihre letzte Option, wenn Sie es nicht anders bestimmen können.

+0

Tolle Erklärung! Macht es viel klarer. Ich werde wahrscheinlich nur die FROM-Adresse nicht optional machen. Vielen Dank. – Nicolas