Co zastępuje serwer SMTP IIS w systemie Windows Server 2012

30

Przeczytałem tutaj uwagi http://technet.microsoft.com/en-us/library/hh831568.aspx dotyczące przestarzałych i usuniętych funkcji w systemie Windows 2012 i mówi, że SMTP jest przestarzały. Zakładam, że dotyczy to serwera SMTP IIS. Rada polega na tym, aby zamiast tego użyć System.Net.Smtp, ale zakładam, że jest to błąd w druku, ponieważ nie mogę znaleźć żadnych odniesień do niczego o nazwie System.Net.Smtp.

Jeśli rzeczywiście zamierzali powiedzieć System.Net.Mail, to tylko API i nie widzę, jak API zastępuje proces serwera. Potrzebuję usługi, która akceptuje połączenia na porcie 25 i kieruje wiadomość e-mail do miejsca docelowego, tak jak to robił IIS SMTP.

Czy ktoś może wyjaśnić sytuację tutaj? Gdyby powiedzieli, że został zastąpiony przez Exchange, przeklinałbym ich, ale przynajmniej byłoby to dla mnie sensowne stwierdzenie, podczas gdy obecne zdecydowanie nie jest.

Andy
źródło

Odpowiedzi:

19

Myślę, że wspomniane oświadczenie Microsoft jest po prostu okropne i całkowicie zagmatwane i nie sądzę, aby ktokolwiek to napisał, miał jakieś pojęcie o tym, jak działa serwer SMTP. Nie wyjaśnia, dlaczego jest przestarzałe lub czy coś jest z nim nie tak. Być może występują problemy z bezpieczeństwem lub przepełnienie bufora, ale jeśli nie udostępniasz go na publicznym porcie, nie zawahałbym się go użyć.

Oto co robię:

  • W IIS skonfigurowałem „SMTP Email”, aby domena mogła wskazywać 10.0.0.1. Robię to w folderze nadrzędnym dla wszystkich wdrożonych witryn, w przeciwnym razie zostanie ono usunięte po ponownym wdrożeniu. Jeśli chcesz, możesz umieścić go bezpośrednio w pliku web.config, ale w ten sposób jest mniej elastyczny.
  • Na serwerze SMTP (za pośrednictwem konsoli zarządzania IIS6) skonfigurowałem serwer SMTP pod adresem 10.0.0.1. Oczywiście, jak powiedziałem wcześniej, nie jest to ujawniane w publicznym Internecie.
  • Konfiguruję ten serwer, aby przekazywał przez Smart Host przez smtp.gmail.comlubsmtp.live.com
  • W mojej aplikacji .NET używam Mail API do wysyłania wiadomości za pomocą new SmtpClient(). To pobiera konfigurację z IIS i wysyła pocztę na mój serwer SMTP pod adresem10.0.0.1
  • Kiedy wysyłam wiadomość, natychmiast wraca, ponieważ jest wysyłana do hosta lokalnego

  • Jest to ważna zaleta korzystania z lokalnego serwera SMTP, którego nie można zaniżać i dla którego „System.Net.Smtp” sam w sobie nie jest substytutem :

    • Serwer SMTP spróbuje przekazać Ci pocztę za pośrednictwem twojego smarthosta, a jeśli nie będzie mógł natychmiast wysłać, spróbuje później.
    • Ważne jest, aby zdawać sobie sprawę, że czasami nawet smtp.gmail.comnie odpowiada, a może Twoja sieć nie działa. (Zaskakująco powszechne, gdy pierwszy raz próbowałem wysłać pocztę bezpośrednio)
    • Bez pośredniego serwera SMTP do przechowywania wiadomości, których nie można po prostu „wysłać i zapomnieć” z .NET i trzeba by wymyślić jakiś mechanizm ponownej próby, który jest zupełnie niepotrzebny w przypadku serwera SMTP, który robi to wszystko za Ciebie
    • Uważam, że jeśli masz limit przekaźników SMTP (na twoim ISP / GMail), to serwer SMTP po prostu spróbuje ponownie i wyśle ​​wiadomości następnego dnia - kolejna ogromna korzyść, jeśli masz niespójny ruch z dnia na dzień lub osiągniesz limit bez zrealizowanie.

Śmiało i użyj go. Microsoft nie zapewnił zamiennika i jest bezpłatny, więc dlaczego nie. „Przestarzałe” w mojej ocenie nic nie znaczy, jeśli nie ma zamiany.

Oświadczenie: Nadal korzystam z Server 2008, ale zakładam, że wszystko to nadal obowiązuje.

Szymon, Szymek
źródło
4
Tak, to samo nadal dotyczy systemu Windows Server 2012. Zawsze jestem zaskoczony, że tak niewielu ludzi zdaje sobie sprawę z zalet używania lokalnego serwera SMTP do kolejkowania wiadomości!
Richard
1
Oprócz kolejkowania serwer SMTP umożliwia rejestrowanie Konfiguracja SMTP w IIS 8.5 nie oferuje żadnego logowania, o ile mi wiadomo. Dodajemy serwer SMTP za pośrednictwem IIS 6 i mówimy IIS 8.5, aby łączył się z hostem lokalnym tylko po to, aby uzyskać pliki dziennika W3C.
Bacon Bits
14

Funkcja SMTP roli serwera sieci Web jest przestarzała, ale nie została usunięta. Możesz go zainstalować i używać, ale zaleca się użycie innego (zewnętrznego) serwera SMTP.

SMTP i powiązane narzędzia do zarządzania są przestarzałe. Chociaż ta funkcja jest nadal dostępna w systemie Windows Server 2012, powinieneś zacząć korzystać z System.Net.Smtp. Dzięki temu API nie będziesz mógł wstawić wiadomości do pliku do odebrania; zamiast tego skonfiguruj aplikacje internetowe, aby łączyły się przez port 25 z innym serwerem za pomocą SMTP.

Tak więc w przyszłości należy zainstalować i używać osobnego serwera SMTP (którego jest wiele dostępnych), aby świadczyć usługi SMTP aplikacjom internetowym działającym w systemie Windows ServerX.

joeqwerty
źródło
4

Ten opis w artykule, do którego linkujesz, jest okropny! Ale oto, co próbuje ci powiedzieć:

Włączenie IIS SMTP w poprzednich wersjach systemu Windows miało dwie rzeczy:

  1. Uruchomiono serwer SMTP IIS.
  2. Dodano biblioteki programowania (tj. Obiekty COM itp.) Do wysyłania wiadomości.

Jeśli użyjesz tych bibliotek bez żadnej konfiguracji, zostaną one przesłane na lokalny serwer SMTP IIS. Programiści są z natury leniwi, więc ponieważ pracowali przy najmniejszym wysiłku z ich strony, właśnie to zrobili. I wielu nie zapewniło sposobu wysyłania wiadomości e-mail za pośrednictwem innego serwera SMTP.

Artykuł powinien powiedzieć, że serwer SMTP IIS już nie istnieje, ale biblioteki SMTP są nadal udostępniane, a aplikacja powinna być skonfigurowana do używania innego serwera SMTP.

długa szyja
źródło
2
Serwer SMTP jest funkcją roli serwera sieci Web w systemie Windows Server 2012 i można go zainstalować. Zostało wycofane, ale nie zostało usunięte.
joeqwerty
Zakładam, że nadal pojawia się w „Konsoli zarządzania IIS6”, prawda?
Simon
2
@ Simon Tak, ta sama stara stara konsola zarządzania z 2002 roku z IIS 6 jest nadal używana do konfigurowania SMTP w Windows Server 2012. :) Funkcja zarządzania IIS 6 jest zależna od funkcji SMTP.
bzlm,
1
Zignoruj ​​ignorancję lenistwa. Aby uzyskać szczegółowe informacje na temat tego, dlaczego lokalny serwer SMTP jest dobrym pomysłem (i standardem w większości innych systemów operacyjnych - klienta i serwera), zobacz tę odpowiedź .
bzlm,
Co powiesz na Windows Server 10 lub jak to się nazywa? Ta sama oferta?
Simon