1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | <form action="" method="post">
<input type="text" name="check" value="<?php if(isset($_POST["check"]))
echo($_POST["check"])?>" style="width: 274px; height: 24px;" />
<input type="submit" value="Verify" />
</form>
<?php
if(isset($_POST["check"]))
{
$res = CheckMail(trim($_POST["check"]));
if (substr($res[0],0,3) == "250")
echo("<strong>Result</strong>: Ok");
else
{
echo("<strong>Result</strong>: Bad");
echo("<br/><br/> Description: ".$res[0]);
}
echo("<br/><br/><strong>Log:</strong><br/>");
$d = $res[2];
$d = str_replace("<","<", $d);
$d = str_replace(">",">", $d);
$d = str_replace("\r","<br/>", $d);
echo($d);
}
function CheckMail($Email)
{
$HTTP_HOST = $_SERVER["HTTP_HOST"];
$FROM = "check@example.com";
$Return = array();
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $Email))
{
$Return[0] = "Bad Syntax";
return $Return;
}
list ( $Username, $Domain ) = split ("@",$Email);
if ( checkdnsrr ( $Domain, "MX" ) )
{
$log .= "MX record about {$Domain} exists.\r";
if ( getmxrr ($Domain, $MXHost))
{
}
$ConnectAddress = $MXHost[0];
$Connect = fsockopen ( $ConnectAddress, 25 );
$Return[1] = $ConnectAddress;
if ($Connect)
{
$log .= "Connection succeeded to {$ConnectAddress} SMTP.\r";
if ( ereg ( "^220", $reply = fgets ( $Connect, 1024 ) ) )
{
$log .= $reply."\r";
fputs ( $Connect, "HELO ". $HTTP_HOST ."\r\n" );
$log .= "> HELO ". $HTTP_HOST ."\r";
$reply = fgets ( $Connect, 1024 ); $log .= $reply."\r";
fputs ( $Connect, "MAIL FROM: <". $FROM .">\r\n" );
$log .= "> MAIL FROM: <". $FROM .">\r";
$reply = fgets ( $Connect, 1024 ); $log .= "=".$reply."\r";
fputs ( $Connect, "RCPT TO: <{$Email}>\r\n" );
$log .= "> RCPT TO: <{$Email}>\r";
$to_reply = fgets ( $Connect, 1024 ); $log .= "=".$to_reply."\r";
fputs ( $Connect, "QUIT\r\n");
fclose($Connect);
}
}
else
{
$Return[0]="500 Can not connect E-Mail server ({$ConnectAddress}).";
return $Return;
}
}
else
{
$to_reply = "Domain '{$Domain}' does not exist.\r";
$log .= "MX record about '{$Domain}' does not exist.\r";
}
$Return[0]=$to_reply;
$Return[2]=$log;
return $Return;
}
?> |