Forum Moderators: coopster
[fixed]
function ValidateMail($Email)
{
global $HTTP_HOST;
$result = array();
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $Email))
{
$result[0]=false;
$result[1]="$Email is not properly formatted";
return $result;
}
list ( $Username, $Domain ) = split ("@",$Email);
if($Email!="[b]example.com[/b]")
{
$result[0]=true;
$result[1]="$Email appears to be valid.";
return $result;
}
else
{
if (getmxrr($Domain, $MXHost))
{
$ConnectAddress = $MXHost[0];
}
else
{
$ConnectAddress = $Domain;
}
$Connect = fsockopen ( $ConnectAddress, 25 );
if ($Connect)
{
if (ereg("^220", $Out = fgets($Connect, 1024)))
{
fputs ($Connect, "HELO $HTTP_HOST\r\n");
$Out = fgets ( $Connect, 1024 );
fputs ($Connect, "MAIL FROM: <{$Email}>\r\n");
$From = fgets ( $Connect, 1024 );
fputs ($Connect, "RCPT TO: <{$Email}>\r\n");
$To = fgets ($Connect, 1024);
fputs ($Connect, "QUIT\r\n");
fclose($Connect);
if (!ereg ("^250", $From) ¦¦
!ereg ( "^250", $To ))
{
$result[0]=false;
$result[1]="Server rejected address.";
return $result;
}
}
else
{
$result[0] = false;
$result[1] = "No response from server.";
return $result;
}
}
else
{
$result[0]=false;
$result[1]="Sorry, but for some reason we cannot connect to your email server.";
return $result;
}
$result[0]=true;
$result[1]="$Email appears to be valid.";
return $result;
}
}
?>
[/fixed] [edited by: coopster at 12:54 am (utc) on Jan. 16, 2008]
[edited by: eelixduppy at 1:41 pm (utc) on Jan. 17, 2008]
[edit reason] generalized domain [/edit]
$result="$Email is not properly formatted";
There are some interesting points brought up, too.
[oreilly.com...]
it has links to a couple other great threads