[PHP-users 14119] Re: mb_send_mail()の質問です
Kazunori Miura
php-users@php.gr.jp
2003年 3月 20日 (木) 04:36:52 JST
三浦と申します。
すべてのメールサーバーに有効というわけではありませんが、
SMTPのrcptを使って、アドレスが有効かどうかチェックする
方法はあります。下のは、実際に使用するにはもう少し直す箇所が
ありますが、とりあえず動くと思います。
適当に直してお試しください。
function CheckEmail($email) {
$return = false;
$SERVER_NAME = "hoge.hoge";
$address = "hoge@hoge";
$domain=split("@",$email);
if (checkdnsrr ($domain[1], "MX")) {
if (getmxrr ($domain[1], $mxhosts, $weight)) {
$query_host = gethostbynamel($mxhosts[0]);
for ($i = 0; $i < count ($query_host); $i++) {
$fp = fsockopen ($query_host[$i], 25);
if (!$fp) {continue;}
$output_0 = "";
socket_set_blocking ($fp, true);
socket_set_timeout($fp, 10);
$output_0 = fgets ($fp, 250);
fputs ($fp, "HELO ".$SERVER_NAME."\n");
$output_1 = fgets ($fp, 200);
fputs ($fp, "MAIL FROM: " . $address . "\n");
$output_2 = fgets ($fp, 200);
fputs ($fp, "RCPT TO: ".$email."\n");
$output_3 = fgets ($fp, 200);
if (ereg ("^250", $output_3)) {
$return = true;
} else {
$return = false;
}
fputs ($fp, "QUIT\n");
fclose($fp);
if ($return == true) {
break;
}
}
}
}
return $return;
} //end function
PHP-users メーリングリストの案内