<?php
function check_email($email) {
global $domain;
$err = '';
if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$", $email)) {
list($alias, $host) = split("@", $email);
if (checkdnsrr($host, "MX")) {
getmxrr($host, $mxhosts);
for ($i=0;$i<count($mxhosts);$i++) {
if ($socket = @fsockopen ($mxhosts[$i], 25, $errno, $errstr, 10)) break;
}
if ($socket) {
if (ereg("^220", $out = fgets($socket, 1024))) {
fputs ($socket, "HELO $domain\r\n");
$out = fgets ( $socket, 1024);
fputs ($socket, "MAIL FROM: <{$email}>\r\n");
$from = fgets ( $socket, 1024);
fputs ($socket, "RCPT TO: <{$email}>\r\n");
$to = fgets ($socket, 1024);
fputs ($socket, "QUIT\r\n");
fclose($socket);
if (!ereg ("^250", $from) || !ereg ("^250", $to)) {
$err = 'Server rejected address';
}
} else {
$err = 'No response from server';
}
} else {
$err = 'Can not connect E-Mail server.';
}
} else {
$err = 'no mx record/invalid domain';
}
} else {
$err = 'Invalid email format';
}
return $err;
}
|