Nel mondo della posta elettronica, ci sono molte sfaccettature al test, ma uno dei test più basilari che puoi fare è semplicemente telnet in un determinato server SMTP. Questo test è utile per determinare se i problemi più basilari esistono o meno.

  • Il server è attivo?
  • C’è un firewall che blocca la comunicazione?
  • Il server di posta consente l’inoltro 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 di qualsiasi software o API di terze parti?

Tutte queste domande e più può essere risolta con un semplice test telnet.

Prima di iniziare, assicurati di aprire il nostro pezzo compagno a questo post: Dove vengono inviati i messaggi di rimbalzo? in una nuova scheda in modo da poter leggere dopo aver finito con questo blog.,

Come nota, i comandi utilizzati nei seguenti esempi (così come i comandi aggiuntivi) sono trattati nella sezione 4.1 di RFC 2821.

La maggior parte dei computer viene preinstallata con un client telnet. Per quelle versioni di Windows che non lo fanno, uno può essere installato aprendo la sezione” Programmi e funzionalità “del pannello di controllo e selezionando”Attiva o disattiva le funzionalità di Windows”. Con questa finestra aperta, selezionare “telnet client” e quindi fare clic su OK.

Una volta che un client telnet è stato verificato per essere installato sul server, dobbiamo prima trovare un server di posta a cui accedere., Per questo, avremo bisogno del record DNS MX per un determinato dominio. Questo può essere trovato con il comando riportato di seguito (per questi esempi port25.com verrà utilizzato, ma ogni dominio può essere sostituito):

Windows:

nslookup -type=mx port25.com

Non autorevole risposta:

port25.com MX preferenza = 100, mail exchanger = mail.port25.com

Linux:

nslookup -type=mx port25.com

Non autorevole risposta:

port25.com scambiatore di posta = 100 mail.port25.com.,

Successivamente abbiamo bisogno del DNS PTR per l’IP che useremo. Per prima cosa dobbiamo sapere quale indirizzo IP Internet ci vede come avere. Per scoprire che possiamo usare 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

Non autorevole risposta:

D. C. B. A. in-addr.arpa name = server.example.com

Linux:

nslookup -type=ptr A. B. C. D

Non autorevole risposta:

D. C. B. A.,in-addr.arpa nome = server.example.com 

server.example.com è solo un esempio e i tuoi risultati saranno diversi.

Così ora che abbiamo il record MX per port25.com e il PTR per l’IP che useremo, è il momento di accedere al server SMTP. Per fare ciò, utilizzare il seguente comando:

 telnet mail.port25.com 25 

Ora dovrebbe essere visualizzato qualcosa di simile al seguente:

Il primo comando che dobbiamo emettere al server di posta è EHLO o HELO., Questo è un saluto di base che avvia la comunicazione tra il client telnet e il server SMTP. Anche passato è il DNS PTR per l’indirizzo IP da cui ci stiamo connettendo come determinato in precedenza.

EHLO server.example.com

Qualcosa di simile al seguente deve essere restituito:

250-mail.port25.com dice hello250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250-8BITMIME250-XACK250-XMRG250-DIMENSIONI 54525952250-VERP250 DSN

mostra i comandi SMTP server SMTP accetta., Non tutti i server SMTP supportano gli stessi set di comandi. Ad esempio, yahoo mostra solo quanto segue:

250-8BITMIME250-SIZE 41943040250 PIPELINING

E aol ne 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 from, che è l’indirizzo email mostrato in un client di posta elettronica.

POSTA DA: <[email protected]> 250 2.1.,0 MAIL ok 

Ora che il comando MAIL FROM è stato inviato possiamo inviare il comando RCPT TO. Questo comando indica al server di posta SMTP a chi deve essere inviato il messaggio. Questo può essere uguale o diverso dall’intestazione a, che è l’indirizzo email mostrato nel client di posta elettronica.

RCPT TO: <[email protected]>250 2.1.5 <[email protected]> ok

L’ultimo comando da eseguire prima di avviare il corpo del messaggio è il comando DATI., Questo comando consente al server di posta SMTP di sapere che tutto il resto che sta per essere inviato è il corpo del messaggio (che contiene anche le intestazioni).

 DATA354 invia messaggio

È importante notare che se un server di posta supporta il PIPELINING, come mail.port25.com fa, il server di posta SMTP può attendere fino a quando il comando DATA viene emesso prima di rispondere a qualsiasi altro comando dopo l’EHLO / HELO. In questo caso, immettere i comandi MAIL FROM, RCPT TO e DATA prima di attendere una risposta.,

Ora che il comando DATA è stato inviato possiamo iniziare a inviare il contenuto del messaggio. Questo inizia con le varie intestazioni. Come minimo un messaggio dovrebbe contenere un’intestazione to, from, subject e date. Le intestazioni inserite qui verranno mostrate all’utente nel loro client di posta elettronica.

Con le intestazioni impostate, ora aggiungiamo una riga vuota con un ritorno a capo / avanzamento riga (basta premere invio due volte) e quindi iniziamo il corpo effettivo del messaggio.

 Ciao mondo, Questo è un messaggio di prova 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 linea da solo. Se durante la scrittura di un messaggio è necessario un punto su una riga da solo, è necessario inserire 2 punti, il primo che sfugge al secondo.

. 250 2.6.0 messaggio ricevuto 

Infine viene inviato il comando QUIT per chiudere la connessione:

QUIT221 2.0.0 mail.porta 25.,com dice addio

Con che il server di posta ha ora accettato il messaggio per la consegna, e dovrebbe essere seduto nella casella di posta del RCPT PER affrontare!!!

Ecco tutti i comandi senza interruzioni:

~ Scott