On 01/20/2011 09:44 AM, Donovan Brooke wrote:
Hi Guys,Advertising
I'm waddling my way through database interaction and thought someone on the list may already have a simple email checker that they'd like to share... you know, looking for the @ char and dots etc.. I did a quick search of the archives and found a couple elaborate things.. but I'm looking for something simple. This job will have trusted users and the checker is more to help them catch mistakes when registering. Thanks!, Donovan
Well, I had created an email validator long ago, after a neat research on Google, reading RFCs, etc. I don't guarantee that it's without bugs, but it has been correct for me in all valid & invalid email addresses I used for test.
Code: <?php function checkMail($mail) { if(strlen($mail) <= 0) { return false; } $split = explode('@', $mail); if(count($split) > 2) { return false; } list($username, $domain) = $split;/*
* Don't allow * Two dots, Two @ * !, #, $, ^, &, *, (, ), [, ], {, }, ?, /, \, ~, `, <, >, ', " */$userNameRegex1 = '/\.{2,}|@{2,}|[\!#\$\^&\*\(\)\[\]{}\?\/\\\|~`<>\'"]+/';
/* * Username should consist of only * A-Z, a-z, 0-9, -, ., _, +, % */ $userNameRegex2 = '/[a-z0-9_.+%-]+/i'; /* * Domain cannot contain two successive dots */ $domainRegex1 = '/\.{2,}/'; /* * Domain can contain only * A-Z, a-z, 0-9, ., -, */ $domainRegex2 = '/[a-z0-9.-]+/i'; if(preg_match($userNameRegex1, $username) or !preg_match($userNameRegex2, $username) or preg_match($domainRegex1, $domain) or !preg_match($domainRegex2, $domain) or !checkdnsrr($domain, 'MX')) { return false; } else { return true; } } -- Regards, Nilesh Govindarajan Facebook: http://www.facebook.com/nilesh.gr Twitter: http://twitter.com/nileshgr Website: http://www.itech7.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php