Qui trovi un piccolo tool che fa un controllo formale, poi controlla che esista un mailserver per quella email ed alla fine fa un check sul fatto che quella e-mail risponda.
Mi raccomando è una semplice dimostrazione.. non abusarne prima che mi blocchino l'IP!
https://massarutto.it/validate-email/

Eccolo spiegato!

Puoi fare un controllo formale sulla validità dell'indirizzo (anche con un semplice regexp in js)

<!-- CAMPO INPUT PER EMAIL --> <input type="email" id="email" name="email" placeholder="Inserisci il tuo indirizzo E-Mail"> <!--CSS PER EVIDENZIARE IL CAMPO IN CASO DI ERRORE --> <style> .has-error { color: red; } .has-success { color: green; } </style> <!-- JS per validazione campo --> <script> // REGEXP PER VALIDARE INDIRIZZO E-MAIL function isValidEmailAddress(emailAddress) { var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; return pattern.test(emailAddress); } // ATTIVAZIONE CONTROLLO EMAIL SULLA MODIFICA DEL CAMPO (codice valido con Jquery) $(document).on('change, keyup', '#email', function(){ var inputvalue = $(this).val(); if( !isValidEmailAddress( inputvalue ) ) { $("#email").removeClass('has-success'); $("#email").addClass('has-error'); } else { $("#email").addClass("has-success") $("#email").removeClass('has-error'); }; return false; } ) </script>

Una volta validata la mail in maniera formale, puoi solo fare un test per verificare che esista un record MX per il dominio (così controlli l'esistenza del server)

Successivamente puoi provare a fare un check sulla email inviando un comando SMTP verso il server e abortendo appena hai una risposta.
Questo metodo di verifica non è però sempre corretto, o comunque fattibile.

Qui qualche info ed il componente che ti permette di implementare rapidamente https://www.chilkatsoft.com/p/p_235.asp

Però, la domanda è: perché dovresti verificarli in questa maniera? Teoricamente dovresti inviare un messaggio con magari un link per confermare l'indirizzo.
Facendo così otterresti con i bounce gli indirizzi non validi e le autorizzazioni del caso per continuare a scrivere al tuo contatto.

A questo punto il controllo consigliato si limita al regexp e poi all'invio concreto.