
Nel mondo delle email, ci sono molte sfaccettature nel testare, ma uno dei test più basilari che puoi fare è semplicemente telnet in un determinato server SMTP. Questo controllo SMTP è utile per determinare se esistono o meno i problemi più basilari.
Nel mondo delle email, ci sono molte sfaccettature nei test, ma uno dei test più semplici che puoi fare è semplicemente telnet su un determinato server SMTP. Questo controllo SMTP è utile per determinare se i problemi più basilari esistono o meno.
Il server è operativo?
C'è un firewall che blocca la comunicazione?
Il server di posta consente il relay di un particolare dominio/indirizzo email?
Quali comandi SMTP supporta il server di posta?
Il server risponde con il nome host corretto?
La connessione funziona al di fuori dei software di terze parti o delle API?
Tutte queste domande e altre ancora possono essere risposte con un semplice test telnet.
Prima di iniziare, assicurati di aprire il nostro pezzo di accompagnamento a questo post: Dove vengono inviati i messaggi di rimbalzo? in una nuova scheda così puoi leggerlo dopo che hai terminato questo blog.
Come nota, i comandi utilizzati negli esempi seguenti (così come comandi aggiuntivi) sono coperti nella sezione 4.1 di RFC 2821.
Come invio un'email usando Telnet?
Inviare email tramite telnet può aiutarti a identificare problemi di consegna all'interno della tua configurazione attuale.
Prima di inviare un'email utilizzando telnet, conferma che telnet sia installato e abilitato sul tuo computer. La maggior parte dei computer viene fornita con un client telnet preinstallato. Per quelle versioni di Windows che non lo hanno, è possibile installarne uno aprendo la sezione “Programmi e funzionalità” nel pannello di controllo e selezionando “Attiva o disattiva funzionalità di Windows”. Con questa finestra aperta, seleziona “client telnet” e poi fai clic su OK.
Una volta verificata l'installazione di un client telnet sul server, apri la finestra del terminale dove entrerai i tuoi comandi prompt. Su Windows, utilizza il comando Windows + R, digita “cmd” e premi invio. Per gli utenti Mac, troverai l'icona del terminale aprendo Finder e cercando “Utilità” nella pagina Applicazioni, o inserendo “terminale” nella funzione di ricerca del Launchpad.
Successivamente, dobbiamo trovare un server di posta su cui accedere. Per questo, avremo bisogno del record DNS MX per un dato dominio. Questo può essere trovato con il seguente comando (per questi esempi sarà utilizzato port25.com, ma qualsiasi dominio può essere sostituito):
Windows:
nslookup -type=mx port25.com
Risposta non autorevole:
port25.com preferenza MX = 100, mail exchanger = mail.port25.com
Linux:
nslookup -type=mx port25.com
Risposta non autorevole:
port25.com mail exchanger = 100 mail.port25.com.
SMTP utilizza una delle tre porte — 25, 465, o 587, che Microsoft Outlook usa comunemente. Per la configurazione e ottimizzazione avanzata del server di posta, consulta la nostra guida su PowerMTA configuration tips. Se il tuo relay SMTP utilizza una porta diversa da 25 come mostrato nell'esempio, utilizzerai la porta specificata dalla risposta del server di scambio della posta al nslookup. Puoi anche verificare la porta su cui si affida il tuo SMTP chiedendo al tuo amministratore o accedendo al server di scambio della posta e rivedendo i protocolli.
Successivamente abbiamo bisogno del PTR DNS per l'IP che utilizzeremo. Innanzitutto, dobbiamo sapere quale indirizzo IP internet ci vede come abbiamo. Per scoprirlo possiamo utilizzare un sito web come:
Con l'indirizzo IP eseguire il seguente comando, dove A.B.C.D è l'indirizzo IP.
Windows:
nslookup -type=ptr A.B.C.D
Risposta non autorevole:
D.C.B.A.in-addr.arpa name = server.example.com
Linux:
nslookup -type=ptr A.B.C.D
Risposta non autorevole:
D.C.B.A.in-addr.arpa name = server.example.com
server.example.com è solo un esempio, e i tuoi risultati saranno diversi.
Ora che abbiamo il record MX per port25.com e il PTR per l'IP che utilizzeremo, è il momento di accedere al server SMTP. Per fare questo, usa il seguente comando:
telnet mail.port25.com 25
Qualcosa di simile al seguente dovrebbe essere mostrato:
Trying 69.63.149.30... Connesso a mail.port25.com (69.63.149.30). Carattere di uscita '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) servizio ESMTP pronto
Se ricevi un messaggio di errore come “non può connettersi” a questo punto, o il numero di porta è corretto o il server di posta sta affrontando problemi.
Il primo comando che dobbiamo emettere al server di posta per il nostro tester email SMTP è l'EHLO o HELO. Questo è un saluto di base che inizia la comunicazione tra il client telnet e il server SMTP. Viene inoltre passato il PTR DNS per l'indirizzo IP dal quale ci stiamo connettendo come determinato in precedenza.
EHLO server.example.com
Qualcosa di simile al seguente dovrebbe essere restituito:
250-mail.port25.com dice ciao 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250-VERP 250 DSN
Questo mostra i comandi SMTP che il server SMTP accetta. Non tutti i server SMTP supportano gli stessi set di comandi. Ad esempio, yahoo mostra solo i seguenti:
250-8BITMIME 250-SIZE 41943040 250 PIPELINING
E aol mostra solo uno con:
250 DSN
Il prossimo comando che dobbiamo emettere è il comando MAIL FROM. Questo determina l'indirizzo a cui vengono inviati i rimbalzi. Questo non è lo stesso dell'intestazione da, che è l'indirizzo email mostrato in un client di posta elettronica.
MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok
Assicurati di utilizzare il nome di dominio corrispondente al dominio del tuo server di posta. Ad esempio, se il dominio della tua email è anycompany.com, vorrai utilizzare you@anycompany.com invece di una email esterna come you@free-mail-provider.com. Le variazioni nei nomi di dominio possono causare la visualizzazione di un messaggio di errore.
Ora che il comando MAIL FROM è stato inviato, possiamo inviare il comando RCPT TO. Questo comando informa il server di posta SMTP a chi dovrebbe essere inviata il messaggio. Questo può essere lo stesso o diverso dall'intestazione to, che è l'indirizzo email mostrato nel client email.
RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok
Ricontrolla l'indirizzo del destinatario prima di inviare il comando RCPT TO — un messaggio di errore che si visualizza qui può indicare un indirizzo email errato o bloccato.
L'ultimo comando da eseguire prima di iniziare il corpo del messaggio è il comando DATA. Questo comando informa il server di posta SMTP che tutto ciò che sta per essere inviato è il corpo del messaggio (che contiene anche le intestazioni).
DATA 354 invia messaggio
È importante notare che se un server di posta supporta PIPELINING, come fa mail.port25.com, il server di posta SMTP può attendere fino a quando il comando DATA viene emesso prima di rispondere ad altri comandi dopo l'EHLO/HELO. In questo caso, inserisci i comandi MAIL FROM, RCPT TO e DATA prima di attendere una risposta.
Ora che il comando DATA è stato inviato, possiamo iniziare a inviare i contenuti del messaggio. Questo inizia con le varie intestazioni. Al minimo, un messaggio dovrebbe contenere una to, from, subject e date header. Le intestazioni inserite qui saranno mostrate all'utente nel loro client email.
From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: test message sent from manual telnet session Date: Wed, 11 May 2011 16:19:57 -0400
Con le intestazioni impostate, aggiungiamo ora una riga vuota con ritorno a capo (premi semplicemente invio due volte) e poi iniziamo il vero corpo del messaggio.
Hello World, Questo è un messaggio di test inviato da una sessione telnet manuale. Yours truly, SMTP administrator
Con il messaggio completo, dobbiamo dire al server SMTP che abbiamo finito con il messaggio e vogliamo che il server di posta SMTP lo accetti. Questo viene fatto con un punto su una riga da solo. Se durante la scrittura di un messaggio è necessario un punto su una riga da solo, devi mettere 2 punti, il primo che sfugge al secondo.
. 250 2.6.0 messaggio ricevuto
Se ricevi un messaggio di errore invece della notifica “ricevuto”, registra i dettagli pertinenti e contatta il tuo fornitore di servizi email per ulteriore assistenza. I problemi di connessione possono anche essere correlati ai protocolli di sicurezza - assicurati di usare TLS 1.2 o superiore per connessioni sicure.
Infine, il comando QUIT viene inviato per chiudere la connessione:
QUIT 221 2.0.0 mail.port25.com dice addio
Con ciò, il server di posta ha ora accettato il messaggio per la consegna, il tuo test di invio email telnet è completo, e dovrebbe essere nell'inbox dell'indirizzo RCPT TO!!!
Ecco tutti i comandi senza interruzione:
telnet mail.port25.com 25 Trying 69.63.149.30... Connesso a mail.port25.com (69.63.149.30). Carattere di uscita '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) servizio ESMTP pronto EHLO server.example.com 250-mail.port25.com dice ciao 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250-VERP 250 DSN MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok DATA 354 invia messaggio From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: test message sent from manual telnet session Date: Wed, 11 May 2011 16:19:57 -0400 Hello World, Questo è un messaggio di test inviato da una sessione telnet manuale. Yours truly, SMTP administrator . 250 2.6.0 messaggio ricevuto QUIT 221 2.0.0 mail.port25.com dice addio
In questo modo il server di posta ha ora accettato il messaggio per la consegna, il tuo test di invio email tramite telnet è completo, e dovrebbe essere nell'inbox dell'indirizzo RCPT TO!!!
Ecco tutti i comandi senza interruzioni:
telnet mail.port25.com 25 Trying 69.63.149.30... Connected to mail.port25.com (69.63.149.30). Escape character is '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready EHLO server.example.com MAIL FROM: <support@port25.com> RCPT TO: <support@port25.com> DATA From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: test message sent from manual telnet session Date: Wed, 11 May 2011 16:19:57 -0400 Hello World, This is a test message sent from a manual telnet session. Yours truly, SMTP administrator . QUIT 221 2.0.0 mail.port25.com says goodbye
Con ciò, il server di posta ha ora accettato il messaggio per la consegna, il tuo test di invio email telnet è completo, e dovrebbe essere nell'inbox dell'indirizzo RCPT TO!!!
Ecco tutti i comandi senza interruzione:
telnet mail.port25.com 25 Trying 69.63.149.30... Connesso a mail.port25.com (69.63.149.30). Carattere di uscita '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) servizio ESMTP pronto EHLO server.example.com MAIL FROM: <support@port25.com> RCPT TO: <support@port25.com> DATA From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: messaggio di prova inviato da una sessione telnet manuale Date: Wed, 11 May 2011 16:19:57 -0400 Hello World, Questo è un messaggio di test inviato da una sessione telnet manuale. Yours truly, SMTP administrator . 250 2.6.0 messaggio ricevuto QUIT 221 2.0.0 mail.port25.com dice arrivederci
Con questo il server di posta ha ora accettato il messaggio per la consegna, il tuo invio email di test via telnet è completo, e dovrebbe trovarsi nella Inbox dell'indirizzo di destinazione RCPT TO!!!
Ecco tutti i comandi senza interruzione:
telnet mail.port25.com 25 Trying 69.63.149.30... Connesso a mail.port25.com (69.63.149.30). Escape character is '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP servizio pronto EHLO server.example.com MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok DATA 354 invia messaggio Da: "John Smith" <jsmith@port25.com> A: "Jane Doe" <jdoe@port25.com> Subject: messaggio di prova inviato da una sessione telnet manuale Data: Wed, 11 May 2011 16:19:57 -0400 Hello World, Questo è un messaggio di test inviato da una sessione telnet manuale. Yours truly, SMTP administrator . 250 2.6.0 messaggio ricevuto QUIT 221 2.0.0 mail.port25.com dice addio
Inviare email di test tramite telnet è completo, e dovrebbe essere nella Inbox dell'indirizzo RCPT TO!!!
Per strumenti di test SMTP più avanzati, considera di utilizzare Swaks con SparkPost per test di email completi.