// isValid() - Check for validity of an email address
// using Reg Exp. MX-record lookup and SMTP
// request.
//
// () nicclas - www.frisim.com / www.nic-sys.se
//
// Inspired by earlier attempts for email-validation.
// Not very reliable but worth a try
function isValid($email){
global $HTTP_HOST;
$status="email ok";
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5})$", $email)){
$status="Adressen $Email ej korrekt enligt Reg Exp test.
";
return $status;
}
list($name,$domain)=split("@",$email);
if(checkdnsrr($domain, "MX")){
getmxrr ($domain, $mxlist);
}
else {
// MX-record is missing, try A-record for domain
$mxlist[0]=$domain;
}
$try=0;
$verified=0;
echo "Domäner att prova: ".count($mxlist)."
\n";
while(($try";
fputs($sp, "HELO $HTTP_HOST\r\n" );
$reply=fgets($sp, 1024 );
echo "Sänder: MAIL FROM: <{$email}>
";
fputs($sp, "MAIL FROM: <{$email}>\r\n" );
$from=fgets($sp, 1024 );
echo "Sänder: RCPT TO: <{$email}>
";
fputs($sp, "RCPT TO: <{$email}>\r\n" );
$to=fgets($sp, 1024 );
echo "Sänder: QUIT
";
fputs($sp, "QUIT\r\n");
fclose($sp);
if(!ereg("^250", $from)|| !ereg("^250", $to )) {
$status="Servern svarar inte på $email.";
} else {
$status="email ok";
$verified=1;
}
}
}
}
return $status;
}
$ret=isValid("");
echo $ret;
?>