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
| function mailTester($mail)
{
if(preg_match("#^(.*)@(.*\.[a-z]{2,4})$#i", $mail, $ret))
{
$r = 0;
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
getmxrr($ret[2], $r);
if(count($r) == 0)
{//try to connect directly to the server
@fsockopen($ret[2],"25",$er1,$er2,0.5); //can't use it with socket :s
if($er1>0)
return -3;//no mx server and no smtp server
$r[0]=$ret[2];
}
if(!socket_connect($socket,$r[0],"25"))
return -2;//can't connect
socket_recv($socket, $retour, 1024, 0);
$ret = getCodeMsg($retour);
if($ret[0] != 220)
return -4;
socket_write($socket, "EHLO voo.be\n");
socket_recv($socket, $retour,1024,0);
$ret=getCodeMsg($retour);
if($ret[0] != 250)
return -7;
socket_write($socket, "MAIL FROM: <mon_adresse@voo.be>\n");
socket_recv($socket, $retour, 1024, 0);
$ret=getCodeMsg($retour);
if($ret[0]!=250)
return -5;
socket_write($socket, "RCPT TO: <".$mail.">\n");
socket_recv($socket, $retour, 1024, 0);
socket_write($socket, "quit\n");
$ret = getCodeMsg($retour);
socket_close($socket);
if($ret[0]==250)
return 1;
else
return -6;
}
return -1;//not an adress mail
}
function getCodeMsg($ret)
{
preg_match("#^([0-9]+) (.*)$#im", $ret, $tab);
array_shift($tab);
return $tab;
} |
Partager