Utilizzare Telnet per testare le comunicazioni SMTP in server Exchange

SI APPLICA A:YES-IMG-162016 yes-img-192019 yes-img-seEdizione in abbonamento

È possibile utilizzare Telnet per verificare la comunicazione SMTP (Simple Mail Transfer Protocol) tra i server di messaggistica. SMTP è il protocollo utilizzato per inviare messaggi di posta elettronica da un server di messaggistica a un altro. L'uso di Telnet può essere utile in caso di problemi con l'invio o la ricezione di messaggi, perché è possibile inviare manualmente i comandi SMTP a un server di messaggistica. In cambio, il server risponderà con risposte che verrebbero restituite in una connessione tipica. Questi risultati possono talvolta aiutare a capire perché non è possibile inviare o ricevere messaggi.

È possibile utilizzare Telnet per verificare la comunicazione SMTP per:

  • Verificare il flusso di posta da Internet all'organizzazione di Exchange.

  • Verificare il flusso di posta da Exchange a un altro server di messaggistica su Internet.

Consiglio

Sapevi che, invece di utilizzare Telnet per testare la connettività SMTP, puoi utilizzare Microsoft Remote Connectivity Analyzer all'indirizzo https://testconnectivity.microsoft.com/? Con l'analizzatore di connettività remota è possibile scegliere il test di connettività che si desidera eseguire, in questo caso Inbound SMTP Email, e seguire le istruzioni visualizzate. Ti guiderà attraverso le informazioni che devi inserire, eseguirà il test per te e quindi ti darà i risultati. Provare per credere.

Che cosa è necessario sapere prima di iniziare?

  • Tempo stimato per il completamento: 15 minuti

  • Le autorizzazioni di Exchange non sono applicabili alle procedure descritte in questo argomento. Queste procedure vengono eseguite nel sistema operativo del server Exchange o in un computer client.

  • In questo argomento viene descritto come utilizzare il client Telnet, incluso in Windows. I client Telnet di terze parti potrebbero richiedere una sintassi diversa da quella illustrata in questo argomento.

  • La procedura descritta in questo argomento illustra come connettersi a un server con connessione Internet che consente connessioni anonime tramite la porta TCP 25. Se si sta tentando di connettersi a questo server da Internet, è necessario verificare che il server Exchange sia raggiungibile da Internet sulla porta TCP 25. Analogamente, se si sta tentando di raggiungere un server su Internet dal server Exchange, è necessario assicurarsi che il server Exchange possa aprire una connessione a Internet sulla porta TCP 25.

  • Alcuni connettori di ricezione che usano la porta TCP 2525 potrebbero essere presenti. Si tratta di connettori di ricezione interni e non vengono usati per accettare connessioni SMTP anonime.

  • Se si sta testando una connessione in un server di messaggistica remota, è consigliabile eseguire i passaggi descritti in questo argomento nel server Exchange. I server di messaggistica remota sono spesso configurati per assicurarsi che l'indirizzo IP da cui proviene la connessione SMTP corrisponda al dominio nell'indirizzo di posta elettronica del mittente.

  • Per informazioni sui tasti di scelta rapida che è possibile utilizzare con le procedure in questo argomento, vedere Tasti di scelta rapida nell'interfaccia di amministrazione di Exchange.

Consiglio

Problemi? Chiedere assistenza nel forum di Exchange Server all'indirizzo Exchange | Exchange Server | Gestione.

Passaggio 1: Installare il client Telnet sul computer

Nella maggior parte delle versioni di Windows, è necessario installare il client Telnet prima di poterlo usare. Per installarlo, vedere Installare Client Telnet.

Passaggio 2: trova l'FQDN o l'indirizzo IP del server SMTP di destinazione

Per connettersi a un server SMTP utilizzando Telnet sulla porta 25, è necessario utilizzare il nome di dominio completo (FQDN) (ad esempio, mail.contoso.com) o l'indirizzo IP del server SMTP. Se non si conosce il nome di dominio completo o l'indirizzo IP, è possibile usare lo strumento da riga di comando Nslookup per trovare il record MX per il dominio di destinazione.

Nota

I criteri di rete potrebbero impedire l'utilizzo dello strumento Nslookup per eseguire query sui server DNS pubblici in Internet. In alternativa, è possibile utilizzare uno dei siti Web di ricerca di record DNS o MX disponibili gratuitamente su Internet.

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

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

  3. 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 quindi premere INVIO.

    Nota

    Quando si utilizza un punto finale ( . ), si evita che i suffissi DNS predefiniti vengano aggiunti inavvertitamente al nome di dominio.

    L'output del comando avrà questo aspetto:

    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 più basso per la preferenza (preferenza = 10 contro 20) indica un server SMTP preferito. Per il bilanciamento del carico e la tolleranza ai guasti vengono utilizzati più record MX e diversi valori di preferenza.

  4. Quando si è pronti per terminare la sessione di NSLOOKUP, digitare exit, quindi premere INVIO.

Passaggio 3: Verifica della comunicazione SMTP tramite Telnet sulla porta 25

In questo esempio useremo i seguenti valori. Quando esegui i comandi sul tuo server, sostituisci questi valori con quelli per il server SMTP della tua organizzazione, il dominio, ecc.

  • 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 di Contoso
  • Corpo del messaggio: si tratta di un messaggio di prova

Consiglio

I comandi nel client Telnet non fanno distinzione tra maiuscole e minuscole. I verbi di comando SMTP in questo esempio sono in maiuscolo per chiarezza. Non è possibile utilizzare il tasto backspace nella sessione Telnet dopo essersi connessi al server SMTP di destinazione. Se si commette un errore durante la digitazione di un comando SMTP, è necessario premere INVIO e quindi digitare nuovamente il comando. I comandi SMTP non riconosciuti o gli errori di sintassi generano un messaggio di errore simile al seguente: 500 5.3.3 Unrecognized command.

  1. Aprire una finestra del prompt dei comandi, digitare telnet, quindi premere INVIO.

    Il comando consente di aprire la sessione di Telnet.

  2. Digitare set localecho, quindi premere INVIO.

    Questo comando facoltativo consente di visualizzare i caratteri durante la digitazione e potrebbe essere necessario per alcuni server SMTP.

  3. Digitare set logfile <filename>, quindi premere INVIO.

    Questo comando facoltativo abilita la registrazione e specifica il file di registro per la sessione Telnet. Se si specifica solo un nome file, il file di log si trova nella cartella corrente. Se si specificano un percorso e un nome file, il percorso deve trovarsi nel computer locale e potrebbe essere necessario immettere il percorso e il nome file nel formato Windows DOS 8.3 (nome breve senza spazi). Il percorso deve esistere, ma il file di log viene creato automaticamente.

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

  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 facoltativo NOTIFY specifica i messaggi specifici di notifica sullo stato di recapito (DSN) (noti anche come messaggi di mancato recapito, rapporti di mancato recapito o rapporti di mancato recapito) che l'SMTP deve fornire. In questo esempio si richiede un messaggio DSN per il recapito del messaggio riuscito o non riuscito.

  8. Digitare DATA, quindi premere INVIO.

  9. Digitare Subject: Test from Contoso, quindi premere INVIO.

  10. Premere di nuovo INVIO.

    È necessaria una riga vuota tra il campo Oggetto: e il corpo del messaggio.

  11. Digitare This is a test message, quindi premere INVIO.

  12. Digitare un punto ( . ) e quindi premere INVIO.

  13. Per disconnettersi dal server SMTP, digitare QUIT, quindi premere INVIO.

  14. Per chiudere la sessione Telnet, digitare quit, quindi premere INVIO.

Ecco come si presenta una sessione riuscita usando i passaggi precedenti:

C:\Windows\System32> telnet
Microsoft Telnet> set localecho
Microsoft Telnet> set logfile c:\TelnetTest.txt
Microsoft Telnet> OPEN mail1.fabrikam.com 25
220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at Fri, 5 Aug 2016 16:24:41 -0700
EHLO contoso.com
250-mail1.fabrikam.com Hello [172.16.0.5]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST
MAIL FROM: <chris@contoso.com>
250 2.1.0 Sender OK
RCPT TO: <kate@fabrikam.com> NOTIFY=success,failure
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Subject: test

This is a test message.
.
250 2.6.0 <c89b4fcc-3ad1-4758-a1ab-1e820065d622@mail1.fabrikam.com> [InternalId=5111011082268, Hostname=mail1.fabrikam.com] Queued mail for delivery
QUIT
221 2.0.0 Service closing transmission channel

Passaggio 4: messaggi di esito positivo e di errore nella sessione Telnet

In questa sezione vengono fornite informazioni sulle risposte di esito positivo e negativo ai comandi usati nell'esempio precedente.

Nota

I codici di risposta SMTP a tre cifre definiti nella RFC 5321 sono gli stessi per tutti i server di messaggistica SMTP, ma le descrizioni del testo nelle risposte potrebbero essere leggermente diverse.

Codici di risposta SMTP

I server SMTP rispondono ai comandi con una varietà di codici di risposta numerici nel formato x.y.z dove:

  • X indica se il comando era buono, cattivo o incompleto.
  • Y indica il tipo di risposta inviata.
  • Z fornisce informazioni aggiuntive sul comando

Quando viene ricevuta una risposta dal server che ha aperto la connessione, può dire se il server remoto ha accettato il comando ed è pronto per quello successivo, o se si è verificato un errore.

La prima cifra (X) è particolarmente importante da capire perché indica il successo o il fallimento del comando inviato. Ecco i suoi possibili valori e i loro significati.

Codice di risposta Significato
2.y.z Il comando inviato è stato completato correttamente sul server remoto. Il server remoto è pronto per il comando successivo.
3.y.z Il comando è stato accettato, ma il server remoto necessita di ulteriori informazioni prima che l'operazione possa essere completata. Il server di invio deve inviare un nuovo comando con le informazioni necessarie.
4.y.z Il comando non è stato accettato dal server remoto per un motivo che potrebbe essere temporaneo. Il server di invio dovrebbe provare a connettersi di nuovo in un secondo momento per vedere se il server remoto può accettare correttamente il comando. Il server di invio continuerà a ripetere la connessione fino al completamento di una connessione riuscita (indicata da un codice 2.y.z) o all'esito finale (indicato da un codice 5.y.z).
Un esempio di errore temporaneo è lo spazio di archiviazione insufficiente sul server remoto. Una volta reso disponibile più spazio, il server remoto dovrebbe essere in grado di accettare correttamente il comando.
5.y.z Il comando non è stato accettato dal server remoto per un motivo non recuperabile. Il server mittente non ripeterà la connessione e invierà un rapporto di mancato recapito all'utente che ha inviato il messaggio.
Un esempio di errore irreversibile è un messaggio inviato a un indirizzo di posta elettronica che non esiste.

La tabella precedente si basa sulle informazioni fornite da RFC 5321 (Simple Mail Transfer Protocol), sezione 4.2.1. In questa sezione e nelle sezioni 4.2.2 e 4.2.3 sono incluse informazioni aggiuntive, comprese le descrizioni della seconda (Y) e della terza (Z) cifra dei codici di risposta SMTP.

Comando APRI

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

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

Possibili cause dell'errore:

  • Il server SMTP di destinazione non è disponibile.
  • Restrizioni sul firewall di destinazione.
  • Restrizioni sul firewall di origine.
  • Indirizzo IP o FQDN non corretto per il server SMTP di destinazione.
  • Numero di porta non corretto.

Comando EHLO

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

Risposta in caso di errore: 501 5.5.4 Invalid domain name

Possibili cause dell'errore:

  • Caratteri non validi nel nome di dominio.
  • Restrizioni di connessione nel server SMTP di destinazione.

Nota

EHLO è il verbo ESMTP (Extended Simple Message Transfer Protocol) definito in RFC 5321. I server ESMTP possono annunciare le funzionalità durante la connessione iniziale. Queste funzionalità includono la dimensione massima accettata dei messaggi 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. Se il server non Exchange a cui si sta tentando di connettersi non supporta EHLO, è possibile usare HELO.

POSTA DA comando

Risposta riuscita: 250 2.1.0 Sender OK

Risposta in caso di errore: 550 5.1.7 Invalid address

Possibili motivi dell'errore: un errore di sintassi nell'indirizzo di posta elettronica del mittente.

Risposta in caso di errore: 530 5.7.1 Client was not authenticated

Possibili motivi dell'errore: il server di destinazione non accetta l'invio di messaggi anonimi. Questo errore viene visualizzato se si tenta di utilizzare Telnet per inviare un messaggio direttamente a un server Cassette postali che non dispone di un connettore di ricezione configurato per accettare connessioni anonime.

Comando RCPT TO

Risposta riuscita: 250 2.1.5 Recipient OK

Risposta in caso di errore: 550 5.1.1 User unknown

Possibili motivi dell'errore: il destinatario specificato non esiste.