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