为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查电子邮件地址是否存在而不发送电子邮件?

如何检查电子邮件地址是否存在而不发送电子邮件?

PHP
梦里花落0921 2019-06-15 10:01:06
如何检查电子邮件地址是否存在而不发送电子邮件?我遇到过这个使用SMTP检查电子邮件地址而不发送电子邮件的PHP代码.有没有人尝试过类似的方法,或者它对你有用吗?你能判断出电子邮件客户/用户输入的内容是否正确&是否存在?
查看完整描述

3 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

有两种方法可以有时用于确定收件人是否实际存在:

  1. 您可以连接到服务器,并发出VRFY命令。很少有服务器支持此命令,但它正是用于此目的。如果服务器使用2.0.0DSN进行响应,则存在用户。

    VRFY用户

  2. 您可以发出一个RCPT,并查看邮件是否被拒绝。

    邮件来源:<>

    rcpt到:<user@Domain>

如果用户不存在,您将得到一个5.1.1DSN。然而,仅仅因为电子邮件没有被拒绝,并不意味着用户存在。一些服务器会默默地丢弃这样的请求,以防止其用户的枚举。其他服务器无法验证用户,因此不管如何,都必须接受该消息。

还有一种名为greylist的反垃圾邮件技术,它将导致服务器最初拒绝地址,期望一个真正的smtp服务器稍后会尝试重新发送。这将破坏验证地址的尝试。

老实说,如果您试图验证一个地址,最好的方法是使用一个简单的regex来阻止明显无效的地址,然后发送一个实际的电子邮件,并返回到您的系统的链接,该链接将验证收到的电子邮件。这也确保了他们的用户输入他们的实际电子邮件,而不是一个轻微的错误,碰巧属于其他人。


查看完整回答
反对 回复 2019-06-15
?
炎炎设计

TA贡献1808条经验 获得超4个赞

一般的答案是你可以检查电子邮件地址是否存在事件,如果你向它发送电子邮件:它可能只是进入一个黑洞。

尽管如此,这里描述的方法是相当有效的。中的生产代码中使用它。ZoneCheck只不过它使用的是RSET而不是退出。

在用户与邮箱的交互并不昂贵的情况下,许多站点实际上通过发送一个必须发送回发射器的秘密号码(通过转到一个秘密URL或通过电子邮件发回这个秘密号码)来测试邮件是否到达某个地方。大多数邮件列表都是这样工作的。


查看完整回答
反对 回复 2019-06-15
  • 3 回答
  • 0 关注
  • 2540 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信