it-swarm.com.de

Was ersetzt IIS SMTP-Server in Windows Server 2012?

Ich habe die Hinweise hier gelesen http://technet.Microsoft.com/en-us/library/hh831568.aspx in Bezug auf veraltete und entfernte Funktionen in Windows 2012 und es heißt, dass SMTP veraltet ist. Ich gehe davon aus, dass sich dies auf den SMTP-Server IIS SMTP) bezieht. Es wird empfohlen, stattdessen System.Net.Smtp zu verwenden, aber ich gehe davon aus, dass dies ein Druckfehler ist, da ich an keiner anderen Stelle Verweise auf etwas finden kann, das aufgerufen wird System.Net.Smtp.

Wenn sie eigentlich System.Net.Mail sagen wollten, ist das nur eine API, und ich sehe nicht, wie eine API einen Serverprozess ersetzt. Ich benötige einen Dienst, der Verbindungen über Port 25 akzeptiert und die E-Mail an das Ziel weiterleitet, wie IIS SMTP verwendet, um dies zu tun.

Kann jemand bitte die Situation hier klären? Wenn sie gesagt hätten, dass es durch Exchange ersetzt wurde, würde ich sie beschimpfen, aber zumindest wäre das eine aussagekräftige Aussage, während die aktuelle definitiv keine ist.

30
Andy

Ich denke, die Aussage von Microsoft, auf die verwiesen wird, ist einfach schrecklich und völlig verwirrend, und ich glaube nicht, dass derjenige, der sie geschrieben hat, eine Ahnung hat, wie der SMTP-Server überhaupt funktioniert. Es erklärt nicht, warum es veraltet ist oder ob etwas daran falsch ist. Vielleicht gibt es Sicherheitsprobleme oder Pufferüberschreitungen, aber wenn Sie es nicht an einem öffentlichen Port verfügbar machen, würde ich nicht zögern, es zu verwenden.

Folgendes mache ich:

  • In IIS Ich habe 'SMTP Email' für die Domain so eingerichtet, dass sie auf 10.0.0.1 Zeigt. Ich mache dies im übergeordneten Ordner für alle bereitgestellten Sites, sonst wird es gelöscht, wenn Sie Wenn Sie möchten, können Sie es direkt in web.config einfügen, aber es ist auf diese Weise weniger flexibel.
  • Auf dem SMTP-Server (über die IIS6-Verwaltungskonsole) habe ich unter 10.0.0.1 Einen SMTP-Server eingerichtet. Wie ich bereits sagte, ist dies offensichtlich nicht im öffentlichen Internet verfügbar.
  • Ich konfiguriere diesen Server so, dass Weiterleitung über einen Smart Host über smtp.gmail.com Oder smtp.live.com
  • In meiner .NET-Anwendung verwende ich die Mail-API, um eine Nachricht mit einer new SmtpClient() zu senden. Dadurch wird die Konfiguration von IIS] übernommen und die E-Mail an meinen SMTP-Server unter 10.0.0.1 Gesendet.
  • Wenn ich eine Mail sende, wird sie sofort zurückgegeben, da sie nur an localhost gesendet wird

  • Dies ist nun der wichtige Vorteil der Verwendung eines lokalen SMTP-Servers, der nicht zu unterschätzen ist und für den 'System.Net.Smtp' an sich kein Ersatz ist :

    • Der SMTP-Server versucht, die E-Mail über Ihren Smarthost für Sie weiterzuleiten. Wenn er nicht sofort gesendet werden kann, versucht er es später erneut.
    • Es ist wichtig zu wissen, dass manchmal sogar smtp.gmail.com Nicht antwortet oder Ihr Netzwerk ausfällt. (Überraschend häufig, als ich zum ersten Mal versuchte, E-Mails direkt zu senden)
    • Ohne einen Zwischen-SMTP-Server zum Speichern der Nachrichten können Sie nicht einfach aus .NET senden und vergessen, und Sie müssten einen Wiederholungsmechanismus finden, der bei einem SMTP-Server, der alles für Sie erledigt, völlig unnötig ist
    • Ich glaube, wenn Sie ein SMTP-Relay-Limit haben (auf Ihrem ISP/GMail), wird der SMTP-Server es einfach weiter versuchen und die Nachrichten am nächsten Tag senden - ein weiterer großer Vorteil, wenn Sie von Tag zu Tag inkonsistenten Datenverkehr haben oder Ihr Limit ohne erreichen realisieren.

Mach weiter und benutze es. Microsoft hat keinen Ersatz bereitgestellt und es ist kostenlos. Warum also nicht? "Veraltet" bedeutet meiner Meinung nach nichts, wenn es keinen Ersatz gibt.

Haftungsausschluss: Ich bin immer noch auf Server 2008, aber ich gehe davon aus, dass dies alles weiterhin gilt.

19
Simon

Die SMTP-Funktion der Webserverrolle ist veraltet, wurde jedoch nicht entfernt. Sie können es installieren und verwenden, es wird jedoch empfohlen, einen anderen (externen) SMTP-Server zu verwenden.

SMTP und die zugehörigen Verwaltungstools sind veraltet. Obwohl die Funktionalität in Windows Server 2012 weiterhin verfügbar ist, sollten Sie System.Net.Smtp verwenden. Mit dieser API können Sie keine Nachricht zur Abholung in eine Datei einfügen. Konfigurieren Sie stattdessen Webanwendungen so, dass sie über SMTP über Port 25 eine Verbindung zu einem anderen Server herstellen.

In Zukunft würden Sie also einen separaten SMTP-Server installieren und verwenden (von dem viele verfügbar sind), um Webanwendungen, die unter Windows ServerX ausgeführt werden, SMTP-Dienste bereitzustellen.

14
joeqwerty

Diese Beschreibung in dem Artikel, auf den Sie verlinkt haben, ist schrecklich! Aber hier ist, was es Ihnen zu sagen versucht:

Das Aktivieren von IIS SMTP in früheren Windows-Versionen hat zwei Dinge bewirkt:

  1. Startete einen IIS SMTP-Server.
  2. Programmierbibliotheken (d. H. COM-Objekte usw.) zum Senden von Nachrichten hinzugefügt.

Wenn Sie diese Bibliotheken ohne jegliche Konfiguration verwenden würden, würden sie an den lokalen IIS SMTP-Server) gesendet. Programmierer sind von Natur aus faul. Da dies mit dem geringsten Aufwand von ihrer Seite funktioniert hat, ist dies der Fall Sie haben es getan. Und viele boten keine Möglichkeit, E-Mails über einen anderen SMTP-Server zu senden.

In dem Artikel sollte angegeben werden, dass der IIS SMTP-Server nicht mehr vorhanden ist, die SMTP-Bibliotheken jedoch weiterhin bereitgestellt werden und die Anwendung für die Verwendung eines anderen SMTP-Servers konfiguriert werden sollte.

4
longneck