Email address validation is basically an impossible problem. In practice, the best strategy is:<p><pre><code> 1. Check if email is wellformed, with an *extremely* lenient algorithm. Basically, do we have .*@.* ?
2. Check that the domain is real, has an MX record, and the SMTP server in the MX record exists.
</code></pre>
Ok, send mail! The only way to verify after that is to send an email with a verification link and complete the circle.