2009/4/28 Jan G.B. <ro0ot.w00t@xxxxxxxxxxxxxx> > 2009/4/28 Jay Blanchard <jblanchard@xxxxxxxxxx>: > > Our company wants to do e-mail verification and does not want to use the > > requests / response method (clicking a link in the e-mail to verify the > > address), which as we all know is the only way you can be truly sure. I > > found this; > > > > http://verify-email.org/ > > > > Which seems to be the next best deal and it is written in PHP. Has > > anyone used this? Is anyone doing something similar? How do you handle > > errors? I know that some domains will not accept these requests. > > > > They don't even detect greylisting! > > > > > I think that this method would really work for us and cut down on the > > bogus e-mail addresses we're receiving though. Thoughts? > > > > There's just one way: let the users confirm with an activation link. > People often insert their addresses wrong without noticing it.. > example: www.myalias@xxxxxxxxxxxx instead of myalias@xxxxxxxxxxxx, > aol.<DE|UK|NL|FR|etc> instead of aol.com and so on. > > So ... nothing like "insert your mail twice" or "re-check your address > please" actually works. ;) > > On the other hand: Douple-opt-In is quite like an industry standard - > why wouldn't your firm use it? It makes customers happy as well as > "not-customers" because people can't use their addressess to sign-up. > I hate getting other peoples email. > > > byebye > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > /** Validate an email address. Provide email address (raw input) Returns true if the email address has the email address format and the domain exists. Modified: 06/06/2003 **/ function validEmail($email) { $isValid = true; $atIndex = strrpos($email, "@"); if (is_bool($atIndex) && !$atIndex) { $isValid = false; } else { $domain = substr($email, $atIndex+1); $local = substr($email, 0, $atIndex); $localLen = strlen($local); $domainLen = strlen($domain); if ($localLen < 1 || $localLen > 64) { // local part length exceeded $isValid = false; } else if ($domainLen < 1 || $domainLen > 255) { // domain part length exceeded $isValid = false; } else if ($local[0] == '.' || $local[$localLen-1] == '.') { // local part starts or ends with '.' $isValid = false; } else if (preg_match('/\\.\\./', $local)) { // local part has two consecutive dots $isValid = false; } else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) { // character not valid in domain part $isValid = false; } else if (preg_match('/\\.\\./', $domain)) { // domain part has two consecutive dots $isValid = false; } else if (!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local))) { // character not valid in local part unless // local part is quoted if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\","",$local))) { $isValid = false; } } if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A"))) { // domain not found in DNS $isValid = false; } } return $isValid; } -- Luke Slater http://dinosaur-os.com/ :O)