Come verificare l'esistenza di un indirizzo email

Verificare un account di posta può essere molto utile quando si gestisce un sito dove i visitatori hanno la possibilità di registrarsi. Dipendendo dal server di posta, è possibile verificare se l'account registrato esiste.

Verificare un account di gmail

È possibile verificare l'esistenza di un account gmail utilizzando un cliente telnet. Il primo passo è ottenere il nome del server di posta utilizzando nslookup.

# nslookup -type=mx gmail.com
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
gmail.com       mail exchanger = 30 alt3.gmail-smtp-in.l.google.com.
gmail.com       mail exchanger = 40 alt4.gmail-smtp-in.l.google.com.
gmail.com       mail exchanger = 5 gmail-smtp-in.l.google.com.
gmail.com       mail exchanger = 10 alt1.gmail-smtp-in.l.google.com.
gmail.com       mail exchanger = 20 alt2.gmail-smtp-in.l.google.com.

Si seleziona il dominio indicato con il numero più basso. In questo caso è il 5: gmail-smtp-in.l.google.com

Ora, dovremo collegarci al dominio selezionato attraverso la porta 25. Dopo di che, sarà necessario esseguire i commandi HELO, mail from e rcpt to.

telnet gmail-smtp-in.l.google.com 25
HELO
mail from:<e*****@gmail.com>
rcpt to:<nerfsloirgdargbmcitmp@gmail.com>
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://support.google.com/mail/bin/answer.py?answer=6596 pt5si10216760wjc.31 - gsmtp

Se la risposta dopo il commando rcpt to è 550, l'indirizzo email specificato non esiste, se invece la risposta fosse 250, l'indirizzo sarebbe valido.

Verificare un account di Yahoo!

Mentre si compila il formulario per creare un account di posta di Yahoo! si esegue un web service che verifica la disponibilità del nome utente inserito. Utilizzando Firebug è possibile verificare l'indirizzo del web service e come inviare i parametri.

Firebug

https://edit.europe.yahoo.com/reg_json?GivenName=&FamilyName=&AccountID=ferrari4552@&PartnerName=yahoo_default&ApiName=ValidateFields&RequestVersion=1&intl=it

Il fatto che il nome utente sia disponibile, dimostra che l'indirizzo email indicato non esiste.

{"ResultCode":"SUCCESS","HostnameInfo":"r04.member.ir2.yahoo.com"}