"; } while ($Get != '') ; socket_set_blocking($Socket,TRUE); } function ValidAddress ($mxhost,$chkmail) { global $deb; $com[]="EHLO jmenoserveru.cz\r\n"; $com[]="MAIL FROM: \r\n"; $com[]="RCPT TO: <$chkmail>\r\n"; $com[]="QUIT\r\n"; $Socket = fsockopen($mxhost, 25, $errno, $errstr, 30); if ($Socket != '') { if ($deb) print "==Connect OK
"; $Get = fgets($Socket); if ($deb) echo "<<$Get
"; $Get = substr($Get,0,3); if ($Get != '220') {fclose($Socket);return 10;} fwrite($Socket,$com[0]); if ($deb) print ">>$com[0]
"; $Get = fgets($Socket,128); if ($deb) echo "<< $a .. $Get
"; $Get = substr($Get,0,3); if ($Get != '250') {fclose($Socket);return 10;} ReadNext($Socket); fwrite($Socket,$com[1]); if ($deb) print ">>$com[1]
"; $Get = fgets($Socket); if ($deb) echo "<<$Get
"; $Get = substr($Get,0,3); if ($Get != '250') {fclose($Socket);return 10;} fwrite($Socket,$com[2]); if ($deb) print ">>$com[2]
"; $Get = fgets($Socket); if ($deb) echo "<<$Get
"; $Get = substr($Get,0,3); #if ($Get != '250') {fclose($Socket);return 10;} if ($Get == '550') {fclose($Socket);return 10;} if ($Get == '554') {fclose($Socket);return 10;} if ($Get == '501') {fclose($Socket);return 10;} fwrite($Socket,$com[3]); if ($deb) print ">>$com[3]
"; $Get = fgets($Socket); if ($deb) echo "<<$Get
"; fclose($Socket); } else return 1; return 0 ; } function CheckMail ($chkmail) { global $deb; $parse=preg_match_all('/([a-z0-9\.\+!#$%&*-=?^_`{|}~]+)@([a-z0-9\.\+!#$%&*-=?^_`{|}~]+)/ui',$chkmail,$retary,PREG_PATTERN_ORDER ); if ($parse) { if (getmxrr($retary[2][0],$MXServers,$MXWeight)) { for($i=0;$i"; if ( ! ValidAddress ($mx_host,$chkmail) ) return 0; } } return 1; } if ($_GET['email']) { $ret=CheckMail ($_GET['email']); print "Checking ".$_GET['email']." with return=$ret
"; } ?>
Type email address to check: >
Source code this .