我有一个客户,他有5000封来自旧列表的电子邮件,他希望将其服务推广到。他想知道列表中的哪些电子邮件仍然有效。我想为他检查一下 - 不随机发送5K电子邮件,然后被列为垃圾邮件发送者或其他东西。想法?
答案 0 :(得分:9)
答案 1 :(得分:6)
bucabay's回答是前进的方向。这样的库本质上是检查指定域(A,MX或AAAA)上(邮件)服务器的现有DNS记录。之后,它会执行所谓的回调验证。这就是你连接到邮件服务器的地方,告诉你要发送到特定的电子邮件地址,看看他们是否说好。
对于回拨验证,您应该注意灰名单服务器对所有内容都说好,所以在没有实际发送电子邮件的情况下,没有100%保证可能。这是我手动执行此操作时使用的一些代码。它是来自here的电子邮件地址解析器的补丁。
#
# Email callback verification
# Based on http://uk2.php.net/manual/en/function.getmxrr.php
#
if (strlen($bits['domain-literal'])){
$records = array($bits['domain-literal']);
}elseif (!getmxrr($bits['domain'], $mx_records, $mx_weight)){
$records = array($bits['domain']);
}else{
$mxs = array();
for ($i = 0; $i < count($mx_records); $i++){
$mxs[$mx_records[$i]] = $mx_weight[$i];
}
asort($mxs);
$records = array_keys($mxs);
}
$user_okay = false;
for ($j = 0; $j < count($records) && !$user_okay; $j++){
$fp = @fsockopen($records[$j], 25, $errno, $errstr, 2);
if($fp){
$ms_resp = "";
$ms_resp .= send_command($fp, "HELO ******.com");
$ms_resp .= send_command($fp, "MAIL FROM:<>");
$rcpt_text = send_command($fp, "RCPT TO:<" . $email . ">");
$ms_resp .= $rcpt_text;
$ms_code = intval(substr($rcpt_text, 0, 3));
if ($ms_code == 250 || $ms_code == 451){ // Accept all user account on greylisting server
$user_okay = true;
}
$ms_resp .= send_command($fp, "QUIT");
fclose($fp);
}
}
return $user_okay ? 1 : 0;
答案 2 :(得分:3)
我认为你需要发送电子邮件才能找到答案。此外,这几乎就是垃圾邮件发送者,因此成为垃圾邮件发送者列表的原因。突然发送将帮助您隐藏这一事实。
答案 3 :(得分:2)
您必须至少向他们发送一次电子邮件。
答案 4 :(得分:1)
https://github.com/kamilc/email_verifier是一个rubygem,它将检查MX记录是否存在以及SMTP服务器是否说该地址具有有效邮箱。
答案 5 :(得分:0)
您也可以使用Kickbox等付费服务来执行此操作。
答案 6 :(得分:0)
您可以考虑适合您的要求的MailboxValidator服务http://www.mailboxvalidator.com/。您可以获得批量计划,您可以在其中上传包含电子邮件列表的CSV文件,或者如果需要编程集成,则可以获取API计划。