Was ersetzt IIS SMTP-Server in Windows Server 2012
30
Ich habe die Hinweise hier http://technet.microsoft.com/en-us/library/hh831568.aspx zu veralteten und entfernten Funktionen in Windows 2012 gelesen und es heißt, dass SMTP veraltet ist. Ich nehme an, dies bezieht sich auf den IIS-SMTP-Server. Es wird empfohlen, stattdessen System.Net.Smtp zu verwenden. Ich gehe jedoch davon aus, dass dies ein Druckfehler ist, da ich an keiner anderen Stelle Verweise auf System.Net.Smtp finde.
Wenn sie eigentlich System.Net.Mail sagen wollten, ist das nur eine API, und ich kann nicht erkennen, 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 es früher bei IIS SMTP der Fall war.
Kann hier bitte jemand die Situation 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 derzeitige definitiv nicht der Fall ist.
Ich denke, die Aussage, auf die Microsoft verweist, ist einfach schrecklich und völlig verwirrend, und ich glaube nicht, dass derjenige, der sie geschrieben hat, eine Ahnung davon hat, wie der SMTP-Server überhaupt funktioniert. Es erklärt nicht, warum es veraltet ist oder ob irgendetwas damit nicht stimmt. Vielleicht gibt es Sicherheitsprobleme oder Pufferüberläufe, aber wenn Sie es nicht auf einem öffentlichen Port verfügbar machen, würde ich es ohne zu zögern verwenden.
Folgendes mache ich:
In IIS habe ich "SMTP-E-Mail" für die Domäne eingerichtet, auf die verwiesen werden soll 10.0.0.1. Ich führe dies im übergeordneten Ordner für alle bereitgestellten Sites aus, da es sonst beim erneuten Bereitstellen gelöscht wird. Wenn Sie möchten, können Sie es direkt in die Datei web.config einfügen, aber auf diese Weise ist es weniger flexibel.
Auf dem SMTP-Server (über die IIS6-Verwaltungskonsole) habe ich einen SMTP-Server unter eingerichtet 10.0.0.1. Wie ich bereits sagte, wird dies natürlich nicht im öffentlichen Internet angezeigt.
In meiner .NET-Anwendung verwende ich die Mail-API, um eine Nachricht mit a zu senden new SmtpClient(). Dadurch wird die Konfiguration von IIS übernommen und die E-Mail an meinen SMTP-Server unter gesendet10.0.0.1
Wenn ich eine E-Mail sende, wird sie sofort zurückgegeben, da sie nur an localhost gesendet wird
Dies ist der wichtige Vorteil der Verwendung eines nicht zu unterschätzenden lokalen SMTP-Servers, für den "System.Net.Smtp" an sich kein Ersatz ist :
Der SMTP-Server versucht, die E-Mail für Sie über Ihren Smarthost weiterzuleiten. Kann er sie nicht sofort senden, wird er es später erneut versuchen.
Es ist wichtig zu wissen, dass manchmal smtp.gmail.comnicht einmal geantwortet wird oder Ihr Netzwerk ausfällt. (Überraschend häufig, als ich zum ersten Mal versuchte, E-Mails direkt zu senden)
Ohne einen SMTP-Zwischenserver zum Speichern der Nachrichten können Sie nicht einfach von .NET aus "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 am nächsten Tag einfach weiter versuchen und die Nachrichten senden - ein weiterer großer Vorteil, wenn Sie von Tag zu Tag inkonsistenten Datenverkehr haben oder Ihr Limit ohne Limit 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 immer noch zutrifft.
Ja, das gilt auch für Windows Server 2012. Es überrascht mich immer wieder, dass so wenige Menschen den Vorteil erkennen, einen lokalen SMTP-Server zum Einreihen von Nachrichten zu verwenden.
Richard
1
Zusätzlich zur Warteschlange werden Sie vom SMTP-Server protokolliert. Die SMTP-Konfiguration in IIS 8.5 bietet meines Wissens keine Protokollierung. Wir fügen den SMTP-Server über IIS 6 hinzu und teilen IIS 8.5 mit, eine Verbindung zum localhost herzustellen, um die W3C-Protokolldateien abzurufen.
Bacon Bits
14
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 noch 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 an Port 25 eine Verbindung zu einem anderen Server herstellen.
Zukünftig würden Sie einen separaten SMTP-Server (von denen viele verfügbar sind) installieren und verwenden, um SMTP-Dienste für Webanwendungen bereitzustellen, die unter Windows ServerX ausgeführt werden.
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:
Startete einen IIS-SMTP-Server.
Programmierbibliotheken (z. B. COM-Objekte usw.) zum Senden von Nachrichten hinzugefügt.
Wenn Sie diese Bibliotheken ohne jegliche Konfiguration verwenden, werden sie an den lokalen IIS-SMTP-Server gesendet. Programmierer sind von Natur aus faul, und da dies mit dem geringsten Aufwand für sie funktioniert hat, haben sie dies auch getan. Und viele boten keine Möglichkeit, E-Mails über einen anderen SMTP-Server zu senden.
In dem Artikel wird darauf hingewiesen, 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.
Der SMTP-Server ist eine Funktion der Webserverrolle in Windows Server 2012 und kann installiert werden. Es wurde veraltet, aber nicht entfernt.
Joeqwerty
Ich nehme an, es wird immer noch unter "IIS6-Verwaltungskonsole" angezeigt, oder?
Simon
2
@ Simon Ja, die gleiche gute alte Verwaltungskonsole aus dem Jahr 2002 von IIS 6 wird weiterhin zum Konfigurieren von SMTP in Windows Server 2012 verwendet. :) Die IIS 6-Verwaltungsfunktion ist von der SMTP-Funktion abhängig.
bzlm
1
Ignorieren Sie die unwissende Faulheit. In dieser Antwort erfahren Sie, warum ein lokaler SMTP-Server eine gute Idee ist (und Standard bei den meisten anderen Betriebssystemen - Client und Server) .
bzlm
Wie wäre es mit Windows Server 10 oder wie heißt es? Gleiche Sache?
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.
Zukünftig würden Sie einen separaten SMTP-Server (von denen viele verfügbar sind) installieren und verwenden, um SMTP-Dienste für Webanwendungen bereitzustellen, die unter Windows ServerX ausgeführt werden.
quelle
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:
Wenn Sie diese Bibliotheken ohne jegliche Konfiguration verwenden, werden sie an den lokalen IIS-SMTP-Server gesendet. Programmierer sind von Natur aus faul, und da dies mit dem geringsten Aufwand für sie funktioniert hat, haben sie dies auch getan. Und viele boten keine Möglichkeit, E-Mails über einen anderen SMTP-Server zu senden.
In dem Artikel wird darauf hingewiesen, 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.
quelle