在我的数据库中检测垃圾邮件

Detect Spamtrap mail in my database

我想知道如何检查我的数据库(论坛)的电子邮件地址是否包含垃圾邮件陷阱。
我想首先检查域是否存在:

$domain = substr($email, strpos($email, '@') + 1);
if  (checkdnsrr($domain) !== FALSE) {
    echo 'Domain is valid!';
}

但是我如何检查电子邮件帐户是否真的存在?

无法以编程方式检查电子邮件地址是否存在绝对确定。你可以做出有根据的猜测,通过。

1) 探测:找到目标域的邮件交换器(DNS MX 记录),打开 SMTP 连接并使用 RCPT TO SMTP 命令探测地址,然后 QUIT 而不是实际发送电子邮件。您收到的 RCPT TO SMTP 响应代码将告诉您邮箱是否可用。这种方法成功率很高,但是如果域名在接受的中继域中,但是用户不存在,有些服务器会响应"Oh sure I like that recipient a lot"。这是没有实际用户信息的备份电子邮件服务器的典型问题。

2) VRFY:同上打开一个SMTP连接,然后使用SMTPVRFY命令检查用户是否存在。这很可能会失败,因为对 VRFY 的支持经常被禁用。