Cosa sostituisce il server SMTP IIS in Windows Server 2012


30

Ho letto le note qui http://technet.microsoft.com/en-us/library/hh831568.aspx per quanto riguarda le funzionalità deprecate e rimosse in Windows 2012 e dice che SMTP è deprecato. Presumo che questo si riferisca al server SMTP IIS. Il consiglio è di usare System.Net.Smtp invece suppongo che si tratti di un errore di stampa perché non riesco a trovare riferimenti altrove a qualcosa chiamato System.Net.Smtp.

Se in realtà intendevano dire System.Net.Mail, questa è solo un'API e non riesco a vedere come un'API sostituisce un processo server. Ho bisogno di un servizio che accetti connessioni sulla porta 25 e instrada l'e-mail verso la destinazione come faceva IIS SMTP.

Qualcuno può chiarire la situazione qui per favore? Se avessero detto che era stato sostituito da Exchange, avrei maledetto loro, ma almeno questo mi avrebbe fatto una dichiarazione significativa da fare, mentre quella attuale sicuramente non lo è.

Risposte:


19

Penso che la dichiarazione di riferimento di Microsoft sia semplicemente terribile e completamente confusa e non credo che chiunque l'abbia scritta abbia idea di come funzioni il server SMTP. Non spiega perché è deprecato o se qualcosa non va. Forse ci sono problemi di sicurezza o sovraccarichi del buffer, ma se non lo si espone su una porta pubblica non esiterei a usarlo.

Ecco cosa faccio:

  • In IIS ho impostato "Email SMTP" per il dominio a cui puntare 10.0.0.1. Lo faccio nella cartella principale di tutti i siti distribuiti, altrimenti verrà cancellato quando si ridistribuisce. Se lo desideri, puoi inserirlo direttamente in web.config, ma in questo modo è meno flessibile.
  • Nel server SMTP (tramite IIS6 Management Console) ho configurato un server SMTP su 10.0.0.1. Ovviamente, come ho detto prima, questo non è esposto su Internet pubblico.
  • Configuro questo server per l' inoltro tramite uno Smart Host tramite smtp.gmail.comosmtp.live.com
  • Nella mia applicazione .NET utilizzo l'API Mail per inviare un messaggio usando a new SmtpClient(). Questo preleva la configurazione da IIS e invia la posta al mio server SMTP all'indirizzo10.0.0.1
  • Quando invio una mail, questa ritorna immediatamente perché viene inviata a localhost

  • Ora questo è il vantaggio importante dell'utilizzo di un server SMTP locale che non può essere sottovalutato e per il quale 'System.Net.Smtp' in sé non è un sostituto :

    • Il server SMTP proverà a inoltrare la posta tramite il tuo smarthost per te e se non può inviarlo immediatamente riproverà più tardi.
    • È importante rendersi conto che a volte anche smtp.gmail.comnon risponderà o forse la tua rete è inattiva. (Sorprendentemente comune quando ho provato a inviare la posta per la prima volta)
    • Senza un server SMTP intermedio per archiviare i messaggi non puoi semplicemente "inviare e dimenticare" da .NET e dovresti capire un qualche tipo di meccanismo di tentativo che è completamente inutile con un server SMTP che fa tutto per te
    • Credo che se hai un limite di inoltro SMTP (sul tuo ISP / GMail), il server SMTP continuerà a riprovare e invierà i messaggi il giorno successivo - un altro enorme vantaggio se hai traffico incoerente di giorno in giorno o colpisci il limite senza rendersene conto.

Vai avanti e usalo. Microsoft non ha fornito un sostituto ed è gratuito, quindi perché no. "Obsoleto" non significa nulla secondo me se non c'è sostituzione.

Disclaimer: sono ancora su Server 2008 ma presumo che tutto ciò sia ancora valido.


4
Sì, lo stesso vale ancora per Windows Server 2012. Sono sempre sorpreso di trovare così poche persone che si rendono conto del vantaggio di utilizzare un server SMTP locale per mettere in coda i messaggi!
Richard,

1
Oltre all'accodamento, il server SMTP ti consente di accedere. La configurazione SMTP in IIS 8.5 non offre alcuna registrazione, per quanto ne so. Aggiungiamo il server SMTP tramite IIS 6 e diciamo a IIS 8.5 di connettersi all'host locale solo per ottenere i file di registro W3C.
Pezzi di pancetta

14

La funzione SMTP del ruolo del server Web è stata deprecata ma non è stata rimossa. È possibile installarlo e utilizzarlo, ma si consiglia di utilizzare un altro server SMTP (esterno).

SMTP e gli strumenti di gestione associati sono obsoleti. Sebbene la funzionalità sia ancora disponibile in Windows Server 2012, è necessario iniziare a utilizzare System.Net.Smtp. Con questa API, non sarai in grado di inserire un messaggio in un file per il ritiro; configurare invece le applicazioni Web per connettersi sulla porta 25 a un altro server tramite SMTP.

Quindi, in futuro, installeresti e utilizzeresti un server SMTP separato (di cui ce ne sono molti disponibili) per fornire servizi SMTP ad applicazioni Web in esecuzione su Windows ServerX.


4

Quella descrizione nell'articolo che hai collegato è terribile! Ma ecco cosa sta cercando di dirti:

L'attivazione di IIS SMTP nelle versioni precedenti di Windows ha fatto due cose:

  1. Avviato un server SMTP IIS.
  2. Aggiunte librerie di programmazione (es. Oggetti COM, ecc.) Per l'invio di messaggi.

Se si utilizzavano quelle librerie senza alcuna configurazione, si sarebbero inoltrate al server SMTP IIS locale. I programmatori sono intrinsecamente pigri, quindi dal momento che hanno funzionato con il minimo sforzo da parte loro, è quello che hanno fatto. E molti non hanno fornito un modo per inviare e-mail tramite un altro server SMTP.

Quello che l'articolo dovrebbe dire è che il server SMTP IIS non esiste più, ma le librerie SMTP sono ancora fornite e l'applicazione deve essere configurata per usare un server SMTP diverso.


2
Il server SMTP è una funzionalità del ruolo del server Web in Windows Server 2012 e può essere installato. È stato deprecato ma non rimosso.
joeqwerty,

Presumo che appaia ancora in "Console di gestione IIS6" giusto?
Simon

2
@Simon Sì, la stessa vecchia console di gestione del 2002 di IIS 6 viene ancora utilizzata per configurare SMTP in Windows Server 2012. :) La funzionalità di gestione di IIS 6 dipende dalla funzionalità SMTP.
bzlm,

1
Ignora il pigrone ignorante. Per i dettagli sul perché un server SMTP locale è una buona idea (e standard sulla maggior parte degli altri sistemi operativi, client e server), vedere questa risposta .
bzlm,

Che ne dici di Windows Server 10 o come si chiama? Lo stesso affare?
Simon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.