Configurare il relay SMTP di IIS per la consegna di email di Office 365

Microsoft IIS può svolgere bene il ruolo di un server SMTP, ma richiede parecchi passaggi per essere configurato. Per fortuna, ho configurato un server di reindirizzamento SMTP di IIS e ho documentato tutti i passaggi!

In questo articolo, copriremo tutti i passaggi necessari per configurare correttamente un server di reindirizzamento SMTP per inviare una email in uscita con Office 365. Tecnicamente, utilizzeremo questo server di reindirizzamento SMTP per inoltrare le email a Office 365; può funzionare allo stesso modo per qualsiasi scopo di consegna di posta tramite server di reindirizzamento SMTP generico.

Prerequisiti

Per configurare IIS e seguire insieme a me, assicurati di avere a disposizione una macchina con Windows Server 2016. Presumo anche che tu abbia effettuato l’accesso al server come amministratore.

Installare la funzionalità del server SMTP di IIS

Il primo compito da svolgere per configurare un server di reindirizzamento SMTP di IIS è installare il server SMTP di IIS. Dovrai installare la funzionalità Server SMTP.

Utilizzo di Server Manager

Se non sei familiare con l’installazione delle funzionalità di Windows tramite Server Manager, dai un’occhiata a questo articolo intitolato Installare o disinstallare ruoli, servizi di ruolo o funzionalità.

Utilizzo di PowerShell

L’installazione della funzionalità del server SMTP rimuove parecchi clic. Apri una console di PowerShell come amministratore ed esegui il comando riportato di seguito:

PS51> Install-WindowsFeature -Name SMTP-Server -IncludeAllSubFeature -IncludeManagementTools -Restart

Aspetta che l’installazione sia completata. Dovresti vedere un output simile a questo.

Installing the SMTP-Server Windows feature with PowerShell

Importa un certificato (solo per TLS)

Se invii e-mail tramite TLS (Office 365), è necessario importare un certificato SSL nello store di certificati personali della macchina locale del server prima di configurare il server SMTP di IIS. Puoi saltare questo passaggio se il tuo relay SMTP di Office 365 non supporta TLS.

Se non hai un certificato, puoi ottenerne uno tramite la tua PKI interna (se disponi di una) o un certificato pubblico utilizzando servizi come LetsEncrypt, Digicert, ecc.

Una volta ottenuto il certificato, dovrai importarlo nell’archivio di certificati personali della macchina locale. Se non conosci il processo di importazione dei certificati utilizzando Certificates MMC, dai un’occhiata a Importazione ed esportazione dei certificati – Microsoft Windows.

Quando avrai successo, dovresti ottenere una finestra di conferma come questa. Fai clic su OK (1) per confermare.

Successful certificate import

Tornando alla finestra principale della console, aggiorna la cartella Personale > Certificati e dovresti essere in grado di vedere il certificato importato.

Valida il certificato

Una volta importato, assicurati di verificare che la catena del certificato sia completa e che non ci siano errori. Se tutto è corretto, dovresti essere in grado di aprire il certificato e vedere che il campo Valido Da è corrente e che c’è una chiave privata associata al certificato. Un esempio è mostrato di seguito.

Validating certificate

Nella scheda Percorso di Certificazione, dovresti anche vedere uno Stato del Certificato che indica che il certificato è OK, come mostrato di seguito.

Certificate status stating that the certificate is OK

Configura il server SMTP di IIS

A questo punto hai installato correttamente il server SMTP. Ma prima di poterlo utilizzare, è necessario configurare le impostazioni del server.

Il server SMTP viene eseguito in modalità compatibilità con IIS6 e non dispone del supporto integrato di PowerShell. Ciò significa che configurerai manualmente le impostazioni utilizzando la Console di Gestione di IIS6.

Vai su Start -> Esegui e digita inetmgr6 e premi Invio. Si aprirà la console di IIS 6.

Una volta aperta la console, fai clic con il pulsante destro del mouse su [SMTP Virtual Server #1] (1), quindi seleziona Proprietà (2).

Checking SMTP Virtual Server properties

Nella finestra Proprietà, seleziona Abilita registrazione (1), quindi fai clic su Proprietà (2).

Enabling logging

Vai alla scheda Avanzate e seleziona tutte le caselle nell’elenco (1), quindi fai clic su OK (2).

Checking advanced options

Torna nella finestra Proprietà, vai alla scheda Consegna e fai clic su Avanzate (1).

Clicking Advanced button on Delivery tab

Nella finestra Consegna avanzata, digita il nome di dominio completo (1) che desideri utilizzare per il server di posta SMTP di destinazione. Non è necessario che sia lo stesso del nome di dominio completo del computer stesso. Se stai configurando questo server SMTP per usarlo con Office 365, nel campo Smart host (2) , definisci il tuo endpoint MX di Office 365. e clicca su OK (3).

Setting smart host

Aggiungi gli IP consentiti nel server SMTP di IIS

Ora, se hai un dispositivo che vuoi testare, devi prima aggiungere il suo indirizzo IP alle restrizioni di relay. In questo esempio, l’indirizzo IP 192.168.0.3 verrà aggiunto alle restrizioni di relay. Questo indirizzo IP appartiene a un computer che si trova nella stessa rete del server.

Per aggiungere un IP consentito nelle restrizioni di relay, vai alla scheda Accesso e clicca su Relay (1).

Relay button on Access tab

All’interno della finestra Restrizioni relay, clicca su Aggiungi (1).

Adding a relay restriction

Quindi digita l’indirizzo IP (1) che desideri consentire e clicca su OK (2).

Restricting relay to only a single IP

Torna alla finestra Restrizioni relay, conferma che l’indirizzo IP sia stato aggiunto all’elenco, quindi clicca su OK (1) e chiudi la finestra delle proprietà.

Confirming new relay restriction

Conferma che il certificato sia rilevato dal server SMTP e abilita la crittografia TLS

Se il tuo server di relay invierà email in uscita tramite TLS, dovrai confermare che il certificato sia visto dal server SMTP di IIS e abilitare la crittografia TLS.

Sulla scheda Accesso delle proprietà del server SMTP, dovresti vedere un messaggio che indica “È stato trovato un certificato TLS con data di scadenza: XXXXXX”. Se è così, sei a posto.

Inspecting TLS certification expiration date

Successivamente, clicca sulla scheda Consegna, clicca su Sicurezza in uscita (1), spunta la casella crittografia TLS (2), clicca su OK (3).

Setting TLS encryption on outbound email

Questo conclude i passaggi di configurazione del server SMTP di IIS.

Testa il server di rilancio di posta SMTP di IIS

A questo punto, il tuo server SMTP dovrebbe essere configurato e pronto per iniziare a rilanciare la posta. Il passo successivo è testarlo. Ora dovresti testare l’invio di email attraverso il relay SMTP per confermare che il server SMTP ricevente riceva il messaggio.

Test con la directory di raccolta

Quando il server SMTP di IIS è installato, creerà una cartella sul server in C:\inetpub\mailroot\Pickup. Questa directory è dove il servizio SMTP raccoglie le email appena inviate per l’elaborazione prima di spostarle nella directory Queue.

Per testare usando questo metodo, crea un file di testo semplice con un contenuto simile a questo:

From: myname@yourdomain.com
To: someone@somedomain.com,someone@NotYourDomain.com
Subject: testing Pickup directory
This is the test message body.

Non dimenticare di cambiare i valori Da e A con i tuoi.

Ora salva questo file in un altro posto diverso dalla directory di raccolta come mail.txt.

Dopo aver salvato il file, copialo e incollalo nella cartella C:\inetpub\mailroot\Pickup. Se avrai successo, il file dovrebbe scomparire rapidamente. Questo significa che il servizio SMTP l’ha preso in carico e ha iniziato ad elaborare il messaggio.

Dopo alcuni secondi o un minuto, dovresti ricevere l’email inviata all’indirizzo email specificato definito in mail.txt.

Test con PowerShell

In questo test, utilizzerai PowerShell dal computer il cui indirizzo IP è stato aggiunto nella sezione Aggiungi IP consentiti nel server SMTP di IIS.

Apri una console PowerShell e copia/incolla il codice qui sotto. Assicurati di modificare i valori dei parametri From, To e SmtpServer. A seconda di come hai configurato il server di reindirizzamento sopra, puoi utilizzare uno dei due esempi seguenti per testare una configurazione non-TLS o TLS.

## Costruisci i parametri del messaggio
$mailParams = @{
    SmtpServer                 = 'smtp.server.here'
    Port                       = 25
    #UseSSL = $true   
    From                       = '[email protected]'
    To                         = '[email protected]', '[email protected]'
    Subject                    = ('ON-PREM SMTP Relay - ' + (Get-Date -Format g))
    Body                       = 'This is a test email using ON-PREM SMTP Relay'
    DeliveryNotificationOption = 'OnFailure', 'OnSuccess'
}
<# Invia il messaggio #>
Send-MailMessage @mailParams

Riepilogo

In questo articolo, hai imparato come configurare un server di reindirizzamento SMTP di IIS per la consegna dell’email del destinatario da Office 365. Abbiamo coperto l’installazione sia di un server SMTP non-TLS che TLS utilizzando una combinazione di GUI e PowerShell. Abbiamo quindi testato la nostra configurazione utilizzando PowerShell per confermare che tutto funzioni correttamente.

Ulteriori Letture

Source:
https://adamtheautomator.com/iis-smtp-relay/