Utilizzo di Telnet per eseguire il test delle comunicazioni SMTP

 

Si applica a: Exchange Server 2010 SP2, Exchange Server 2010 SP3

Ultima modifica dell'argomento: 2016-11-28

In questo argomento viene descritto come utilizzare Telnet per eseguire la verifica della comunicazione SMTP (Simple Mail Transfer Protocol) tra i server di messaggistica. Per impostazione predefinita, SMTP è in ascolto sulla porta 25. Se si utilizza Telnet sulla porta 25, è possibile immettere i comandi SMTP utilizzati per connettersi a un server SMTP e inviare un messaggio esattamente come se la sessione Telnet si trovasse in un server di messaggistica SMTP. È possibile visualizzare l'esito positivo o negativo di ogni passaggio del processo di connessione e invio del messaggio.

Di seguito vengono descritti gli scenari di utilizzo di Telnet per la verifica della comunicazione SMTP in ingresso o in uscita dai server di trasporto presenti nell'organizzazione di Microsoft Exchange Server:

  • Connettersi al server Trasporto Edge dell'organizzazione da un host ubicato all'esterno della rete perimetrale e inviare un messaggio di prova.

  • Connettersi a un server di messaggistica remoto dal server Trasporto Edge e inviare un messaggio di prova.

Nella procedura di questo argomento viene illustrato come utilizzare il client Telnet, un componente compreso in Microsoft Windows. I client Telnet di terze parti possono richiedere una sintassi differente da quella del componente Telnet di Windows.

Prerequisiti

  • Configura un connettore di ricezione per consentire l'accesso anonimo o l'autenticazione di base   Siccome i trasferimenti di messaggi, che normalmente si verificano tra i server Trasporto Hub, sono crittografati e autenticati, il server Trasporto Hub interno dovrebbe disporre di un connettore di ricezione configurato per consentire l'accesso anonimo o l'autenticazione di base per la ricezione dei messaggi quando si utilizza Telnet sulla porta 25 per la verifica della comunicazione. L'accesso anonimo è necessario per i server con connessione a Internet

    Nota

    Quando si invia un messaggio a un connettore di ricezione che accetta l'autenticazione di base, è necessario disporre di un'utilità per convertire le stringhe di testo utilizzate per il nome utente e la password nel formato Base64. Poiché con l'autenticazione di base il nome utente e la password sono facilmente individuabili, non è consigliabile utilizzare questo tipo di autenticazione senza crittografia.

  • Connettersi a un server di messaggistica remoto   Si consiglia inoltre di connettersi a un server di messaggistica remoto dal server Trasporto Edge dell'organizzazione. Ciò consente di evitare il rifiuto del messaggio di prova da parte dei server SMTP con connessione a Internet configurati per la convalida dell'indirizzo IP di origine, del corrispondente nome di dominio DNS (Domain Name System) e dell'indirizzo IP di ricerca inversa di qualsiasi host Internet che tenta di inviare un messaggio al server.

  • Installa e/o abilita il client Telnet   Potrebbe essere necessario eseguire una o più delle seguenti attività prima di utilizzare Telnet per la verifica della comunicazione SMTP tra i server di messaggistica:

    • Se ancora non è stato installato, installare il client Telnet. Per i dettagli sull'installazione del client Telnet su Windows Vista o Windows Server 2008, vedere Installa client Telnet.

    • Abilitare il client Telnet su Windows Server 2008. Vedere la procedura più avanti in questo argomento.

  • Trova il nome di dominio completo o l'indirizzo IP di un server SMTP. Se non si conoscono, è possibile utilizzare Nslookup per trovare il nome di dominio completo o l'indirizzo IP di un server SMTP. Vedere la procedura descritta più avanti in questo argomento.

Abilitazione del client Telnet in Windows Server 2008

L'appartenenza al gruppo Administrators locale di Windows Server 2008 o equivalente è il requisito minimo necessario per completare questa procedura.

In Windows Server 2008, il client Telnet è disabilitato per impostazione predefinita. Per abilitarlo, procedere come segue:

  1. Aprire Server Manager.

  2. Fare clic su Azione, e selezionare Aggiungi funzionalità.

  3. Selezionare Client Telnet e fare clic su Avanti.

  4. Fare clic su Installa, quindi su Chiudi per completare l'installazione del client Telnet.

Individuazione del nome di dominio completo o dell'indirizzo IP di un server SMTP tramite Nslookup

Per connettersi a un server SMTP di destinazione utilizzando Telnet sulla porta 25, è necessario utilizzare il nome di dominio completo (FQDN) o l'indirizzo IP del server SMTP. Se non si conosce il nome di dominio completo o l'indirizzo IP, il modo più semplice per ottenere queste informazioni è utilizzare lo strumento della riga di comando Nslookup per trovare il record MX del dominio di destinazione.

  1. Nel prompt dei comandi, digitare nslookup e premere INVIO. Il comando consente di aprire la sessione di Nslookup.

  2. Digitare set type=mx, quindi premere INVIO.

  3. Digitare set timeout=20, quindi premere INVIO. Per impostazione predefinita, i server DNS di Windows hanno un limite di timeout delle query DNS ricorsive di 15 secondi.

  4. Digitare il nome del dominio per cui si desidera trovare il record MX. Ad esempio, per trovare il record MX per il dominio fabrikam.com digitare, fabrikam.com. e premere INVIO.

    Nota

    Il punto finale ( . ) indica un nome di dominio completo. L'uso del punto finale impedisce l'aggiunta accidentale al nome di dominio di qualsiasi suffisso DNS predefinito configurato per la rete.

    L'output del comando sarà simile al seguente:

    fabrikam.com mx preference=10, mail exchanger = mail1.fabrikam.com
    fabrikam.com mx preference=20, mail exchanger = mail2.fabrikam.com
    mail1.fabrikam.com internet address = 192.168.1.10
    mail2 fabrikam.com internet address = 192.168.1.20
    

    Come server di destinazione è possibile utilizzare qualsiasi nome host o indirizzo IP associato ai record MX. Un valore di preferenza più basso indica un server SMTP preferenziale. È possibile utilizzare più record MX e valori di preferenza diversi per il bilanciamento del carico e la tolleranza d'errore.

  5. Quando si è pronti a terminare la sessione Nslookup, digitare exit e premere INVIO.

Nota

Le restrizioni del firewall o del proxy Internet applicate alla rete interna dell'organizzazione potrebbero impedire l'utilizzo dello strumento Nslookup per eseguire query sui server DNS pubblici in Internet.
I record MX non sono tassativamente necessari per il flusso di messaggi interno a un'organizzazione di Exchange. Se si deve trovare il nome FQDN di un server Trasporto Hub o di un server Trasporto Edge sottoscritto nell'organizzazione, è possibile utilizzare il comando seguente in Exchange Management Shell: Get-ExchangeServer | where {$.isHubTransportServer -eq $true -or $.isEdgeServer -eq $true} | Format-List Fqdn,ServerRole
Per ulteriori informazioni, vedere Get-ExchangeServer e Pipelining.

Verifica della comunicazione SMTP tramite Telnet sulla porta 25

Per fornire un esempio, la seguente procedura utilizza i valori descritti nel seguente elenco:

  • Server SMTP di destinazione   mail1.fabrikam.com

  • Dominio di origine   contoso.com

  • Indirizzo di posta elettronica del mittente   chris@contoso.com

  • Indirizzo di posta elettronica del destinatario   kate@fabrikam.com

  • Oggetto del messaggio   Test Contoso

  • Corpo del messaggio   Messaggio di prova

    Nota

    È sempre consigliabile utilizzare un indirizzo di posta elettronica di un mittente valido, in modo che tutti gli eventuali messaggi Rapporto di mancato recapito generati dal server SMTP di destinazione vengano recapitati al mittente del messaggio.

I comandi nel client Telnet non rilevano la distinzione tra maiuscole e minuscole. I verbi dei comandi SMTP sono resi al maiuscolo per maggiore chiarezza.

  1. Nel prompt dei comandi, digitare telnet e premere INVIO. Il comando consente di aprire la sessione di Telnet.

  2. Digitare set localecho, quindi premere INVIO. Questo comando opzionale consente di visualizzare i caratteri mentre vengono digitati. Questa impostazione potrebbe essere necessaria per alcuni server SMTP.

  3. Digitare set logfile*<nomefile>*. Questo comando facoltativo consente alla sessione di Telnet di accedere al file di registro specificato. Se si specifica il solo nome file, il percorso del file di registro corrisponderà alla directory di lavoro corrente. Se si specifica nome file e percorso, quest'ultimo dovrà essere interno al computer locale. Sia il percorso che il nome file specificati devono essere immessi nel formato Microsoft DOS 8.3. Il percorso specificato deve essere già esistente. Se si specifica un file di registro inesistente, il file in questione verrà creato.

  4. Digitare open mail1.fabrikam.com 25, quindi premere INVIO.

    Nota

    Non è possibile utilizzare BACKSPACE dopo essersi connessi al server SMTP di destinazione durante la sessione di Telnet. Se si commette un errore durante la digitazione di un comando SMTP, è necessario premere INVIO e digitare nuovamente il comando. I comandi SMTP non riconosciuti e gli errori di sintassi causano la visualizzazione di un messaggio di errore simile al seguente:

    500 5.3.3 Unrecognized command
    
  5. Digitare EHLO contoso.com, quindi premere INVIO.

  6. Digitare MAIL FROM:chris@contoso.com, quindi premere INVIO.

  7. Digitare RCPT TO:kate@fabrikam.com NOTIFY=success,failure, quindi premere INVIO. Il comando NOTIFY opzionale consente di definire gli specifici messaggi di notifica sullo stato del recapito (DSN) che il server SMTP di destinazione deve fornire al mittente. I messaggi DSN vengono definiti in RFC 1891. In questo caso, si sta richiedendo un messaggio DSN per il recapito riuscito o non riuscito di un messaggio.

  8. Digitare DATA, quindi premere INVIO. Si riceverà una risposta simile alla seguente:

    354 Start mail input; end with <CLRF>.<CLRF>
    
  9. Digitare Oggetto: Test Contoso e quindi premere INVIO.

  10. Premere INVIO. RFC 2822 richiede una riga vuota tra il campo di intestazione Subject: e il corpo del messaggio.

  11. Digitare Messaggio di prova e quindi premere INVIO.

  12. Premere INVIO, digitare un punto ( . ) e premere INVIO. Si riceverà una risposta simile alla seguente:

    250 2.6.0 <GUID> Queued mail for delivery
    
  13. Per disconnettersi dal server SMTP di destinazione, digitare QUIT e premere INVIO. Si riceverà una risposta simile alla seguente:

    221 2.0.0 Service closing transmission channel
    
  14. Per chiudere la sessione Telnet, digitare quit e premere INVIO.

Valutazione dei risultati di una sessione Telnet

In questa sezione vengono fornite informazioni sulle risposte che possono essere fornite ai seguenti comandi, utilizzati nell'esempio precedente:

  • Aprire mail1.fabrikam.com 25

  • EHLO contoso.com

  • MAIL FROM:chris@contoso.com

  • RCPT TO:kate@fabrikam.com NOTIFY=success,failure

    Nota

    I codici di risposta SMTP a tre cifre definiti in RFC 2821 sono gli stessi per tutti i server di messaggistica SMTP. Le descrizioni testuali potrebbero essere leggermente diverse per alcuni server di messaggistica SMTP. Nell'esempio precedente, il computer di destinazione eseguiva Exchange Server 2010.

Aprire mail1.fabrikam.com 25

Risposta positiva   220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>

Risposta di errore   Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

Possibili motivi di errore

  • Il server SMTP di destinazione non è disponibile.

  • Sono presenti restrizioni sul firewall di destinazione.

  • Sono presenti restrizioni sul firewall di origine.

  • È stato specificato un nome FQDN o un indirizzo IP non corretto per il server SMTP di destinazione.

  • È stato specificato un numero di porta non corretto.

EHLO contoso.com

Risposta positiva   250 mail1.fabrikam.com Hello [<sourceIPaddress>]

Risposta di errore   501 5.5.4 Invalid domain name

Possibili motivi di errore   Sono presenti caratteri non validi nel nome di dominio. In alternativa, sono presenti restrizioni di connessione sul server SMTP di destinazione.

Nota

EHLO è il comando ESMTP definito in RFC 2821. I server ESMTP possono annunciare le funzionalità durante la connessione iniziale. Tali funzionalità includono la dimensione massima dei messaggi accettati e i metodi di autenticazione supportati. HELO indica il comando SMTP precedente definito in RFC 821. La maggior parte dei server di messaggistica SMTP supporta ESMTP ed EHLO.

MAIL FROM:chris@contoso.com

Risposta positiva   250 2.1.0 Sender OK

Risposta di errore   550 5.1.7 Invalid address

Possibili motivi di errore   È presente un errore di sintassi nell'indirizzo di posta elettronica del mittente.

Risposta di errore   530 5.7.1 Client was not authenticated

Possibili motivi di errore   Il server di destinazione non accetta invii di messaggi anonimi. Viene visualizzato questo errore se si tenta di utilizzare Telnet per inviare un messaggio direttamente a un server Trasporto Hub.

RCPT TO:kate@fabrikam.com NOTIFY=success,failure

Risposta positiva   250 2.1.5 Recipient OK

Risposta di errore   550 5.1.1 User unknown

Possibili motivi di errore   Il destinatario specificato non esiste nell'organizzazione.

 ©2010 Microsoft Corporation. Tutti i diritti riservati.