| function Validateemail ($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 have consecutive dots $isValid = false; } else if (!preg_match ('/^[a-za-z0-9\\-\\. +$/', $domain)) { Character not valid on domain part $isValid = false; } else if (preg_match ('/\\.\\./', $domain)) { Domain part has a consecutive dots $isValid = false; } else if (!preg_match ('/^ (\\\\.| [a-za-z0-9!#%& ' _=\\/$\ ' *+?^{}|~.-]) +$/', Str_replace ("\\\\", "", $local))) { Character not valid on 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; } ?> |