Giusto:
esistono diversi siti che fanno validazione delle email, e che si potrebbero usare.
Uno e' quello fornito da @Oregon, ma ne esistono diversi.
Basta una ricerca con Google
Tieni presente che:
1) OVVIAMENTE non puoi sperare di validare centinaia o migliaia di email al giorno, ""a gratissss".
Diciamo 5/10 (dipende dal sito). Ma nel tuo caso il numero sembra adeguato
2) anche se la validazione termina con successo, non e' detto che l'indirizzo sia valido
I server di posta ""seri"" adottano tutta una serie di strategie per evitare lo spam, assicurarsi che il server non sia usato in modo non consono, ecc. Ad esempio possono accettare qualunque indirizzo di posta e SOLO DOPO un certo tempo (30 minuti, 1 ora, ecc) inviare l'email di indirizzo non valido al mittente.
Comunque, il tuo codice manca ancora di un sistema di validazione un po' piu' "robusto".
Anche se il 100% delle mail che hai trattato fino ad ora hanno un dominio a 2/3 caratteri, la Legge di Murphi (ed i suoi corollari) dicono che con probabilita' del 100% ti troverai nel caso in cui il tuo sistema fallira'
https://www.corsiinrete.it/humor/139
https://dgpixel.wordpress.com/2014/11/15/le-leggi-di-murphy-informatica/
Ad esempio, accetterebbe
pinco.pallino@vigilio.it
quando avrebbe dovuto essere
pinco.pallino@vi[r]gilio.it
(mancava la "r")
Per validare il server, oltre al metodo sopra citato, potresti anche banalmente provare a convertire i seguenti nomi in IP
(con l'equivalente di "nslookup")
mail.[host].[dom]
imap.[host].[dom]
smtp.[host].[dom]
pop3.[host].[dom]
www.[host].[dom]
Non e' certo al 100%, ma con elevata probabilita', se esiste un indirizzo di posta, esiste anche uno o piu' dei sudetti siti
Comunque, potrebbero anche fallire tutti!
Insomma, ""tutto fa brodo""