邮件-如何快速的筛选出有效的邮箱?
现在手上有一批邮箱(千万级别),但是有很多邮箱服务器已经不存在了,有什么办法能快速的过滤出有效邮件服务器?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
现在手上有一批邮箱(千万级别),但是有很多邮箱服务器已经不存在了,有什么办法能快速的过滤出有效邮件服务器?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
为了一劳永逸,建议还是直接导入到数据库,两个字段就行,
一个为完整的email, 一个为主机域名(@后边的部分)
如果只是检测 邮箱服务器是否存在可以 按照 主机域名 分组 查询
select host from email group by host
然后 依次使用下面的方法判断:
$handle = @fsockopen('smtp'.$host, 25, $errno, $errstr, 20);
如果 $handle 为 false ,$errno 为10060 直接按照 host 当条件删除记录
delete from email where host = $host
表中剩下的记录可视为 邮箱服务器有效。
当然也可以使用 checkdnsrr() 等 函数来检测。
这里提供一个方法,你试一试,这是以前收藏的:
补充:为了不误导大家,这里说明下,此方法希望在把邮箱域名归档后再进行验证,避免重复的验证
function check_mail($useremail){
$smtp = explode("@",$useremail);
$username = $smtp[0];
$smtp = 'smtp.'.$smtp[1];
$flag = "";
$message="";
$message .= "开始连接服务器<br>";
$link = fsockopen($smtp,25);
if ($link){
set_socket_blocking($link,true);
$lastmessage=fgets($link,512);
if (!ereg("^220",$lastmessage)){
$message .= "与服务器连接失败" . $lastmessage . "<br>";
}else{
$message .= "与服务器连接成功,服务器就绪:" . $lastmessage . "<br>";
fputs($link,"HELO phpsetmail"."rn");
$lastmessage=fgets($link,2000);
if (ereg("^250",$lastmessage)){
$message .= "与服务器HELO成功:" .$lastmessage. "<br>";
}
else{
$message .= "与服务器HELO失败:" .$lastmessage. "<br>";
}
fputs($link,"AUTH LOGIN"."rn");
$lastmessage=fgets($link,2000);
if (ereg("^334",$lastmessage)){
$message .= "请求与服务器进行用户验证成功:" .$lastmessage. "<br>";
}
else{
$message .= "请求与服务器进行用户验证失败:" .$lastmessage. "<br>";
}
fputs($link,base64_encode($username)."rn");
$lastmessage=fgets($link,2000);
if (ereg("^334",$lastmessage)){
$message .= "与服务器用户验证成功:" .$lastmessage. "<br>";
$flag = 1;
}else{
$message .= "与服务器用户验证失败:" .$lastmessage. "<br>";
$flag = -2;
}
fputs($link,"HELPrn");
$lastmessage=fgets($link,2000);
$message .= "HELP命令执行情况:".$lastmessage. "<br>";
}
fclose($link);
$message .= "关闭服务器连接";
}
else{
$message = $useremail.$smtp."服务器连接失败";
$flag = -1;
}
$return = array("msg"=>$message,"flag"=>$flag);
return $return;
}