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; }
|