Instead of worrying about which email addresses may or may not be contained, which you really are not interested in, check if your program can send them by email or not - this is what you are really interested in! This means that you are indeed sending a confirmation email.
Otherwise, you will not be able to catch the much more common case of random typos that remain within any character set that you design. (Quick: is random@mydomain.com - is the valid address for me on your site or not?) It also avoids unnecessary and free alienation of any users when you tell them that their address is absolutely correct and correct. You can still not handle some addresses (this is necessary to alienate), as other answers say: processing an email address is not trivial; but something they need to find out if they want to provide you an email address!
All you have to check is that the user puts the text before the @ symbol, the text after it, and the address is not outrageously long (say 1000 characters). If you want to provide a warning ("it looks like a problem! Is there a typo" double check before continuing "), this is fine, but it should not block the process of adding an email address.
Of course, if you do not want to send them an email, just take whatever they enter. For example, an address can only be used for Gravatar , but Gravatar still checks all email addresses.
Roger Pate 02 Oct '10 at 5:41 2010-10-02 05:41
source share