Come testare il servizio di mail SMTP tramite la linea di comando e TELNET

La prima cosa da fare per provare se funziona la posta di un dominio è identificare il mail server, la cosa è facile facile, basta dare il comando:

nslookup -query=mx example.com

ad esempio

nslookup -query=mx folstuff.eu

la risposta sarà qualcosa del tipo:

Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
folstuff.eu mail exchanger = 5 ALT1.ASPMX.L.GOOGLE.COM.
folstuff.eu mail exchanger = 10 ASPMX2.GOOGLEMAIL.COM.
folstuff.eu mail exchanger = 1 ASPMX.L.GOOGLE.COM.
folstuff.eu mail exchanger = 10 ASPMX3.GOOGLEMAIL.COM.
folstuff.eu mail exchanger = 5 ALT2.ASPMX.L.GOOGLE.COM.

Authoritative answers can be found from:
ALT1.ASPMX.L.GOOGLE.COM internet address = 142.251.9.27
ALT1.ASPMX.L.GOOGLE.COM has AAAA address 2a00:1450:4025:c03::1b
ASPMX.L.GOOGLE.COM internet address = 142.250.27.27
ASPMX.L.GOOGLE.COM has AAAA address 2a00:1450:4025:401::1b
ALT2.ASPMX.L.GOOGLE.COM internet address = 142.250.150.27
ALT2.ASPMX.L.GOOGLE.COM has AAAA address 2a00:1450:4010:c1c::1b

Il numero dopo “exchanger = 1” indica la priorità dei server da contattare per spedire la posta al dominio interrogato 1 è il primo server che viene interpellato

A questo punto dobbiamo collegarci alla porta 25 del server selezionato tramite telnet o analogo programma (ad esempio putty)

N.B.

Il server di cui nell’esempio precedente non è indicato perché richiede una connessione SSL o TLS rispettivamente sulla porta 465 o 587 ed inoltre pretende l’autenticazione con utente e password.
Google mette a disposizione per questi scopi altri server ad esempio: smtp-relay.gmail.com però tenete presente che ci sono delle limitazioni, per approfondire leggete l’articolo: https://support.google.com/a/answer/176600?hl=it

Cominciamo quindi il test digitando:

telnet smtp-relay.gmail.com smtp

La risposta sarà qualcosa del tipo:

Trying 142.250.27.28…
Connected to smtp-relay.gmail.com.
Escape character is '^]'.
220 smtp-relay.gmail.com ESMTP cp44-20020a056000402c00b00346b96fdb8esm67042wrb.73 - gsmtp

A questo punto ci presentiamo al server dichiarando il nostro nome (il nostro FQDNS) con:

HELO folcreator.folstuff.eu

il server ci risponderà con:

250 smtp-relay.gmail.com at your service

Indichiamo chi sta spedendo la mail:

MAIL FROM: <fol@folstuff.eu>

Ci aspettiamo una risposta del tipo:

250 Sender <fol@folstuff.eu> Ok

A questo punto indichiamo il destinatario con:

RCPT to: recipient@example.com

La risposta assomiglierà a:

250 Recipient recipient@example.com Ok

Ora dobbiamo indicare al server che vogliamo digitare i dati da inviare con:

DATA

Il server ci risponderà più o meno così:

354 Ok Send data ending with <CRLF>.<CRLF>

Ci avvisa che è pronto a ricevere i dati da spedire e ,per indicare che l’immisione è conclusa, dovremo digitare un invio seguito da un punto e da un altro invio.
Per cui digitiamo qualcosa del tipo:

Prova messaggio

A cui facciamo seguire un invio poi digitiamo:

.

A cui facciamo seguire un altro invio e il server ci indicherà qualcosa tipo:

250 Message received: 20040120203404.CCCC18555.mx1.localhost@folcreator.folstuff.eu

possiamo quindi chiudere la sessione con:

QUIT 

Se il server richiede l’autenticazione bisogna procedere come i seguito spiegato:

Per prima cosa dobbiamo procurarci un tool per la codifica/decodifica di dati codificati tramite base64.

Si può usare un tool onine (ce ne sono diversi rintracciabile con una breve query su google) oppure un utility perl, ad esempio:

 perl -MMIME::Base64 -e 'print encode_base64("username");'
perl -MMIME::Base64 -e 'print encode_base64("password");'

il processo è analogo a quanto visto in precedenza solo che dopo aver dato il comando HELO bisogna autnticarsi con:

AUTH LOGIN

A questo punto incolleremo la stringa restituita dal primo comando perl (il nome utente) che abbiamo dato precedentemente e premeremo invio

Poi incolleremo la stringa del secondo comando perl (la password) e premeremo invio

Se abbiamo fatto tutto correttamente il server risponderà con:

235 Authentication succeeded

Eda qui inpoi procederemo come nell’esempio precedente

Lascia un commento