我正在运营一个拥有超过6万注册用户的网站.每周通过电子邮件向这些用户发送通知,现在我已经注意到一些邮件地址不再存在,例如.域名地址有效,但电子邮件名称en asdas @不再有效,因为此人不再在公司工作等等.现在我正在循环数据库并进行一些正则表达式检查并检查MX记录是否存在于以下两个功能
function verify_email($email){
if(!preg_match('/^[_A-z0-9-]+((\.|\+)[_A-z0-9-]+)*@[A-z0-9-]+(\.[A-z0-9-]+)*(\.[A-z]{2,4})$/',$email)){
return false;
} else {
return true;
}
}
// Our function to verify the MX records
function verify_email_dns($email){
list($name, $domain) = split('@',$email);
if(!checkdnsrr($domain,'MX')){
return false;
} else {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
如果电子邮件地址格式无效或域不存在,则删除用户帐户.如果域名有效且电子邮件地址格式正确,我是否可以使用任何方法检查电子邮件地址是否仍然存在?例如,abc @ test.com不再存在,但test.com是有效的域名.
注意:如果邮件发送给用户并且电子邮件地址不再存在,我会在收件箱中收到一封电子邮件,导致每天1000封,我正在努力避免.
标准方法是连接到远程邮件服务器并向其发送VRFY命令.但是,有些服务器不允许这样做,因为它使垃圾邮件发送者更容易找到有效的电子邮件地址.您也可以尝试向它发送RCPT TO命令(如果地址无效,您将获得550响应),但如果您这样做太多次,它们往往会阻止您,原因相同
如果您已经在收件箱中收到退回的电子邮件,您似乎可以解析这些邮件并自动从列表中删除导致传递失败的人
| 归档时间: |
|
| 查看次数: |
521 次 |
| 最近记录: |