Naprednija provjera emaila koristeći getmxrr.
<?
function mail_valid ($email) {
global $HTTP_HOST, $WINDIR;
if ($WINDIR != "")
return true;
$host = str_replace ("www.", "", $HTTP_HOST);
list ($username, $domain) = split ('@', $email);
if (@getmxrr ($domain, $MXHost)) {
$address = $MXHost[0];
} else {
$address = $domain;
}
$socket = @fsockopen ($address, 25, $errno, $errstr, 8);
if (!$socket) {
return "Can not connect E-Mail server";
}
if (!ereg ("^220", $out = fgets ($socket, 1024))) {
return "No response from server [".trim($out)."]";
}
fputs ($socket, "HELO $HTTP_HOST\r\n");
do {
$out = fgets ($socket, 1024);
} while (ereg ("^220", $out));
if (!ereg ("^250", $out)) {
return "Server rejected host
[HELO $HTTP_HOST -> ".trim($out)."]";
}
fputs ($socket, "MAIL FROM: <helpdesk@{$host}>\r\n");
if (!ereg ("^250", $out = fgets ($socket, 1024))) {
return
"Server rejected sender [MAIL FROM: <helpdesk@{$host}> -> ".trim($out)."]";
}
fputs ($socket, "RCPT TO: <{$email}>\r\n");
if (!ereg ("^250", $out = fgets ($socket, 1024))) {
return false;
}
fputs ($socket, "QUIT\r\n");
fclose ($socket);
return true;
}
?>