【发布时间】:2025-12-30 16:05:18
【问题描述】:
我想知道如何检查我的数据库(论坛)的电子邮件地址是否包含垃圾邮件陷阱。
我想首先检查域是否存在:
$domain = substr($email, strpos($email, '@') + 1);
if (checkdnsrr($domain) !== FALSE) {
echo 'Domain is valid!';
}
但我如何检查电子邮件帐户是否真的存在?
【问题讨论】:
我想知道如何检查我的数据库(论坛)的电子邮件地址是否包含垃圾邮件陷阱。
我想首先检查域是否存在:
$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 响应代码将告诉您邮箱是否可用。这种方法的成功率相当高,但是如果域在接受的中继域中,但用户不存在,一些服务器会回复“哦,当然我非常喜欢那个收件人”。这是没有实际用户信息的备份电子邮件服务器的典型问题。
2) VRFY:同上打开一个 SMTP 连接,然后使用 SMTP VRFY 命令检查用户是否存在。这很可能会失败,因为对 VRFY 的支持经常被禁用。
【讨论】: