Come utilizzare Telnet per la verifica della comunicazione SMTP

 

Si applica a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Ultima modifica dell'argomento: 2006-11-14

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 di 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.

Nell'elenco seguente vengono descritti i possibili 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.

Informazioni preliminari

Per impostazione predefinita, i trasferimenti di messaggi che si verificano tra i server Trasporto Hub sono crittografati e autenticati. È possibile utilizzare Telnet sulla porta 25 solo per inviare messaggi a un server Trasporto Hub interno con un connettore di ricezione configurato per consentire l'accesso anonimo o l'autenticazione di base per la ricezione di messaggi. L'accesso anonimo è necessario per i server con connessione a Internet. 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.

I server di messaggistica SMTP con connessione a Internet di molte organizzazioni sono 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 tenti di inviare un messaggio al server. Se si connette un computer di test a Internet e si tenta di inviare un messaggio di prova a un server di messaggistica remoto utilizzando Telnet sulla porta 25, il messaggio potrebbe essere rifiutato. Per soddisfare gli eventuali requisiti di protezione imposti dal server di messaggistica remoto, è possibile connettersi al server in questione dal server Trasporto Edge. I domini accettati configurati sul server Trasporto Edge hanno i record DNS di di Mail Exchanger (MX), i record di indirizzo (A, Address) e i record di ricerca inversa appropriati, che identificano il server Trasporto Edge come l'origine legittima e rintracciabile dei messaggi di posta elettronica per i domini accettati in Internet.

Nelle procedure riportate in questo argomento viene illustrato come utilizzare il client Telnet Microsoft incluso in Microsoft Windows Server 2003 e Windows XP. Le versioni precedenti di Windows o i client Telnet di terze parti potrebbero richiedere una sintassi diversa. I comandi nel client Telnet Windows non rilevano la distinzione tra maiuscole e minuscole. I verbi dei comandi SMTP sono resi al maiuscolo per maggiore chiarezza.

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

Utilizzo dello strumento Nslookup dalla riga di comando per trovare l'indirizzo IP di un server SMTP

Per connettersi a un server SMTP di destinazione utilizzando Telnet sulla porta 25, è necessario disporre del nome di dominio completo (FQDN, Fully Qualified Domain Name) o dell'indirizzo IP del server SMTP. Il modo più semplice per ottenere questa informazione è utilizzare lo strumento Nslookup dalla riga di comando per trovare il record MX del dominio di destinazione.

Per utilizzare lo strumento Nslookup per trovare l'indirizzo IP di un server SMTP

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

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

  3. Digitare set timeout=20 e 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. Per trovare il record MX per il dominio fabrikam.com digitare, ad esempio, fabrikam.com. e quindi premere INVIO.

    Nota

    Il punto finale ( . ) indica un nome FQDN. 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 di Nslookup, digitare exit e quindi 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.

Utilizzo di Telnet sulla porta 25 per la verifica della comunicazione SMTP

Nella procedura riportata in questa sezione viene illustrato come utilizzare Telnet sulla porta 25 per la verifica della comunicazione SMTP. Nella procedura vengono utilizzati i valori descritti nell'elenco seguente:

  • 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.

Per utilizzare Telnet sulla porta 25 per la verifica della comunicazione SMTP

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

  2. Digitare set localecho e 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 <nome file>. 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 e quindi premere INVIO.

  5. Digitare EHLO contoso.com e quindi premere INVIO.

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

  7. Digitare RCPT TO:kate@fabrikam.com NOTIFY=success,failure e 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 nell'RFC 1891. In questo caso, si sta richiedendo un messaggio DSN per il recapito riuscito o non riuscito di un messaggio.

  8. Digitare DATA e 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. L'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 quindi 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 quindi premere INVIO. Si riceverà una risposta simile alla seguente:

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

Interpretazione dei risultati di una sessione di Telnet con un server SMTP

In questa sezione vengono fornite informazioni dettagliate sulle risposte che potrebbero essere generate dai comandi immessi nell'esempio precedente.

Nota

I codici di risposta SMTP a tre cifre definiti nell'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. In questo esempio, il computer di destinazione esegue Exchange Server 2007.

Aprire mail1.fabrikam.com 25

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

Risposta di esito negativo   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 di esito positivo   250 mail1.fabrikam.com Hello [<sourceIPaddress>]

Risposta di esito negativo   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 verbo ESMTP (Extended Simple Message Transfer Protocol) definito nell'RFC 2821. I server ESMTP possono annunciare le proprie funzionalità durante la connessione iniziale. Tali funzionalità includono la dimensione massima dei messaggi accettati e i metodi di autenticazione supportati. HELO è il precedente verbo SMTP definito nell'RFC 821. La maggior parte dei server di messaggistica SMTP supporta ESMTP ed EHLO.

MAIL FROM:chris@contoso.com

Risposta di esito positivo   250 2.1.0 Sender OK

Risposta di esito negativo   550 5.1.7 Invalid address

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

Risposta di esito negativo   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 di esito positivo   250 2.1.5 Recipient OK

Risposta di esito negativo   550 5.1.1 User unknown

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

Ulteriori informazioni

Per ulteriori informazioni, vedere i seguenti argomenti: