Simulare l’invio di una mail via Telnet

Telnet CMD

In molti casi può essere utile testare manualmente l’invio di una mail verso un server SMTP per attività di verifica e manutenzione.

Il test SMTP più semplice è quello di effettuare l’invio della mail via telnet.

In questi casi, infatti, è molto utile sostituirsi al client di posta preferito e scrivere la mail “passo passo” per verificare tutti i passaggi.

Requisiti

Alcune cose che devi sapere prima di iniziare:

  • Se utilizzi un computer con Sistema Operativo Windows 7 o superiore, il comando TELNET non è presente di default, ma va installato come componente di Windows aggiuntivo;
  • Se utilizzi un MacOS puoi integrare il comando Telnet con Homebrew
  • Quando stai digitando i comandi di invio mail non puoi effettuare cancellazioni: in caso di errori di battitura, anche se cancelli e riscrivi correttamente, il server ti risponderà sempre con un messaggio di comando sconosciuto.

Inviare una mail via telnet

Ecco come puoi inviare la mail via Telnet in 7 semplici passaggi:

  1. Apri un prompt dei comandi: vai su Start — > Esegui (oppure premi Tasto Windows + R), digita CMD e premi invio;

  2. Collegati al Server: digita il comando “telnet mail.server.com 25” dove “mail.server.com” è il nome (o l’indirizzo IP) del server SMTP che vuoi testare (come ad esempio mail.vignali.it) e 25 è il numero della porta utilizzata dal servizio SMTP (25 è la porta standard, qualora il server utilizzi una porta differente utilizza il numero di porta corrispondente);

  3. Saluta il Server: digita il comando HELO per aprire la comunicazione.
    • digita il comando “HELO” (o “EHLO”) e premi invio
      • dopo il comando “HELO” puoi aggiungere il nome di un server (anche fittizio)
    • il server dovrebbe risponderti con un messaggio simile a: “250 mail.server.com Hello, anonymous identity received”

  4. Inserisci l’indirizzo del mittente: inserisci l’indirizzo del mittente, come segue:
    • MAIL FROM: mittente@dominiomittente.com
    • il server dovrebbe risponderti “250 mittente@dominiomittente.com Sender OK”.”

  5. Inserisci l’indirizzo del destinatario: inserisci l’indirizzo del destinatario, come segue:
    • RCPT TO: destinatario@dominiodestinatario.com
    • il server dovrebbe risponderti “250 destinatario@dominiodestinatario.com Recipient OK”.”

  6. Componi il tuo messaggio: inserisci il tuo messaggio, come segue:
    • digita il comando “DATA” seguito da invio
    • il server ti risponderà che puoi digitare il tuo messaggio, chiudendo con “.” nell’ultima riga
    • inserire l’oggetto della mail digitando: “SUBJECT: [testo dell’oggetto]” e premendo invio due volte
      • eventuali altri campi che puoi utilizzare in questa sezione sono “FROM:”, “DATE:” e “TO:”
    • digitare il testo della mail che vuoi inviare e dai invio
    • digita “.” ed invio per inviare
    • riceverai un messaggio di conferma simile a “Message accepted for delivery.”

  7. Esci da Telnet: digita “QUIT” e premi invio
Esempi di opzioni accettate nel campo “DATA”

Effettuare un invio mail via telnet con SMTP autenticato

La procedura sopra descritta è leggermente differente qualora il server SMTP richieda un’autenticazione.

In questo caso, dopo aver effettuato i primi 3 punti della lista sopra descritta, dovrai effettuare la procedura di autenticazione:

  • Digita il comando “AUTH LOGIN” e premi invio
  • Il server ti risponderà “334 VXNlcm5hbWU6“, questa è la richiesta da parte del server del tuoi username codificata in Base64.
  • Inserisci il tuo nome utente codificato in Base64 (puoi convertirlo usando questo tool online)
  • Il server ti risponderà “334 UGFzc3dvcmQ6” che è la richiesta di password codificata in Base64.
  • Inserisci la tua password codificata in Base64
  • Il server risponderà “235 Authentication successful”

A questo punto sarai autenticato sul server SMTP e potrai procedere con l’invio, ripartendo dal punto 4 della lista precedente.

Simulare un invio di spoofing

In alcuni casi può essere utile ai fini dei test impersonare un altro mittente inviando una mail di spoofing.

Per quanto la tecnica di email spoofing sia molto usata per fini malevoli, è comunque prevista dal protocollo SMTP. Essa è spesso utilizzata anche per fini professionali, ad es. quando si usano servizi di terze parti per l’invio di mail a nome del tuo dominio di posta.

Per simulare l’invio con un indirizzo diverso da quello effettivo bisogna sfruttare il campo FROM: (punto 5 della lista sopra).
Il campo “FROM:” dovrà essere valorizzato con l’indirizzo della mail che vuoi impersonare, mentre il campo “MAIL FROM:” sarà valorizzata con l’indirizzo email del mittente effettivo.

ESEMPIO

Riferimenti utili

Definizione RFC dei campi From, Sender e Return Path