Frage Was ersetzt den IIS SMTP-Server in Windows Server 2012?


Ich habe die Notizen 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 nehme an, dies bezieht sich auf den IIS-SMTP-Server. Der Rat ist, stattdessen System.Net.Smtp zu verwenden, aber ich nehme an, dass dies ein Druckfehler ist, weil ich keine Verweise auf etwas finden kann, das System.Net.Smtp genannt wird.

Wenn sie eigentlich System.Net.Mail sagen wollten, ist das nur eine API und ich kann nicht sehen, wie eine API einen Serverprozess ersetzt. Ich brauche einen Dienst, der Verbindungen an Port 25 akzeptiert und die E-Mail an das Ziel weiterleitet, wie es IIS SMTP gewohnt ist.

Kann hier bitte jemand die Situation klären? Wenn sie gesagt hätten, dass es durch Exchange ersetzt wurde, dann würde ich sie verfluchen, aber das würde mir zumindest eine sinnvolle Aussage machen, während die jetzige definitiv nicht ist.


29
2017-12-06 14:40


Ursprung




Antworten:


Ich denke, die referenzierte Aussage von Microsoft ist einfach schrecklich und völlig verwirrend und ich glaube nicht, dass derjenige, der es geschrieben hat, irgendeine 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 aussetzen, würde ich nicht zögern, es zu verwenden.

Folgendes mache ich:

  • In IIS habe ich "SMTP Email" für die Domäne eingerichtet, auf die verwiesen werden soll 10.0.0.1. Ich tue dies im übergeordneten Ordner für alle bereitgestellten Sites oder es wird bei der erneuten Bereitstellung gelöscht. Wenn Sie möchten, können Sie es direkt in web.config einfügen, aber es ist so weniger flexibel.
  • Im SMTP-Server (über IIS6 Management Console) richte ich einen SMTP-Server an 10.0.0.1. Offensichtlich ist dies, wie ich bereits sagte, nicht im öffentlichen Internet verfügbar.
  • Ich konfiguriere diesen Server zu Weiterleitung über einen Smart Host  über smtp.gmail.com oder smtp.live.com
  • In meiner .NET Anwendung benutze ich die Mail API um eine Nachricht mit einem new SmtpClient(). Dadurch wird die Konfiguration von IIS übernommen und die Mail an meinen SMTP-Server gesendet 10.0.0.1
  • 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 unterschätzt werden kann und für den "System.Net.Smtp" an sich kein Ersatz ist:

    • Der SMTP-Server wird versuchen, die Mail über Ihren Smarthost für Sie weiterzuleiten, und wenn es nicht sofort senden kann, wird es später erneut versuchen.
    • Es ist wichtig, das manchmal sogar zu erkennen smtp.gmail.com antwortet nicht oder Ihr Netzwerk ist ausgefallen. (Überraschenderweise häufig, als ich zuerst versuchte, Post direkt zu senden)
    • Ohne einen zwischengeschalteten SMTP-Server zum Speichern der Nachrichten können Sie nicht einfach von .NET "senden und vergessen" und Sie müssten einen Retry-Mechanismus finden, der komplett überflüssig ist mit einem SMTP-Server, der alles für Sie erledigt
    • Ich glaube, wenn Sie ein SMTP-Relay-Limit (auf Ihrem ISP / GMail) haben, dann wird der SMTP-Server einfach weiter versuchen und die Nachrichten am nächsten Tag senden - ein weiterer großer Vorteil, wenn Sie inkonsistente Zugriffe von Tag zu Tag oder ohne Limit haben realisieren.

Mach weiter und benutze es. Microsoft hat keinen Ersatz bereitgestellt, und es ist kostenlos, warum 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 noch immer zutrifft.


19
2018-02-08 02:15



Ja, das gilt auch für Windows Server 2012. Ich bin immer wieder überrascht, dass so wenige Leute den Vorteil eines lokalen SMTP-Servers zum Einreihen von Nachrichten erkennen. - Richard
Zusätzlich zur Warteschlangenfunktion wird der SMTP-Server protokolliert. Die SMTP-Konfiguration in IIS 8.5 bietet keine Protokollierung, soweit mir bekannt ist. Wir fügen den SMTP-Server über IIS 6 hinzu und weisen IIS 8.5 an, sich mit dem lokalen Host zu verbinden, nur um die W3C-Protokolldateien zu erhalten. - Bacon Bits


Die SMTP-Funktion der Web Server-Rolle ist veraltet, wurde jedoch nicht entfernt. Sie können es installieren und verwenden, aber es wird 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 in eine Datei zur Abholung einfügen. Konfigurieren Sie Webanwendungen stattdessen so, dass sie eine Verbindung auf Port 25 mit einem anderen Server mithilfe von SMTP herstellen.

Daher würden Sie in Zukunft einen separaten SMTP-Server (von dem es viele gibt) installieren und verwenden, um SMTP-Dienste für Webanwendungen bereitzustellen, die unter Windows Server X ausgeführt werden.


14
2017-12-06 15:01





Diese Beschreibung in dem Artikel, mit dem Sie verbunden sind, ist schrecklich! Aber hier ist, was es dir zu sagen versucht:

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

  1. Einen IIS SMTP-Server gestartet.
  2. Hinzufügen von Programmierbibliotheken (d. H. COM-Objekte usw.) zum Senden von Nachrichten.

Wenn Sie diese Bibliotheken ohne Konfiguration verwenden, senden sie diese an den lokalen IIS-SMTP-Server. Programmierer sind von Natur aus faul, und da das mit dem geringsten Aufwand vonstatten ging, haben sie das gemacht. Und viele bieten keine Möglichkeit, E-Mails über einen anderen SMTP-Server zu senden.

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


5
2017-12-06 14:58



Der SMTP-Server ist eine Funktion der Web Server-Rolle in Windows Server 2012 und kann installiert werden. Es wurde veraltet, aber nicht entfernt. - joeqwerty
Ich nehme an, es erscheint immer noch unter 'IIS6 Management Console' richtig? - Simon
@Simon Ja, die gleiche gute alte Verwaltungskonsole von 2002 von IIS 6 wird weiterhin verwendet, um SMTP in Windows Server 2012 zu konfigurieren. :) Die IIS 6-Verwaltungsfunktion ist eine Abhängigkeit von der SMTP-Funktion. - bzlm
Ignoriere die ignorante Faulheit. Für Details darüber, warum ein lokaler SMTP-Server eine gute Idee ist (und Standard bei den meisten anderen Betriebssystemen - Client und Server), siehe diese Antwort. - bzlm
Wie wäre es mit Windows Server 10 oder wie auch immer es heißt? Gleicher Deal? - Simon