【问题标题】:Mailbox existence checking [duplicate]邮箱存在检查[重复]
【发布时间】:2018-04-12 09:43:20
【问题描述】:

如何在PHP中对每个电子邮件地址执行深层次的 SMTP 验证,每个电子邮件地址都将验证邮箱是否存在,而无需在该地址上发送实际电子邮件?

假设我有 5 个电子邮件地址

abc@gmail.com
def@gmail.com (fake)
ghi@gmail.com
jkl@gmail.com (fake)
mno@gmail.com

从上面的列表中,我有 2 个虚假/垃圾邮件电子邮件 ID,我想通过真实和虚假/垃圾邮件过滤电子邮件 ID,而不发送电子邮件?

【问题讨论】:

  • 举个更好的例子。
  • 您的问题显示no attempt 解决了问题。如果你尝试,你可能会成功。但如果你不这样做,你将永远失败。如果您确实尝试过,但没有与他人分享我们的努力,他们可能会重复您的工作,而不是提供有效的解决方案。
  • 无法完成。要验证电子邮件地址是否确实存在,您需要向其发送电子邮件并等待回复。响应可能并不总是有效,即邮箱已满或其他技术问题。所有 php 和其他语言都可以检查电子邮件地址是否符合特定条件。
  • @savshit 在发送邮件之前,您需要使用任何电子邮件验证 API 来验证电子邮件地址
  • 即使您可以从不存在的地址中分辨出存在,地址存在这一事实仍然不意味着任何特定的人会收到/看到您发送给它的电子邮件.那是另一层。如果您想确保可以通过电子邮件与特定人员进行交流,唯一的方法是向他们发送电子邮件并让他们单击链接/输入确认码或类似的反馈循环。

标签: php


【解决方案1】:

You can:

您应该使用 SMTP 检查。

这意味着您必须连接到该电子邮件的 SMTP 服务器。

连接到 SMTP 服务器后,您应该发送以下命令:

HELO somehostname.com 发件人:RCPT 至: 如果你得到 ”: 中继访问被拒绝”,表示此电子邮件无效。

有一个简单的 PHP 类。你可以使用它:

http://www.phpclasses.org/package/6650-PHP-Check-if-an-e-mail-is-valid-using-SMTP.html

...但不建议这样做:

这在技术上是正确的,但实际上是不可取的:ISP(尤其是 Yahoo 和 Hotmail)知道这一点,他们将阻止来自 如果您经常这样做,您(甚至是确实存在的地址)。简而言之, 不要这样做。

如果您要验证电子邮件地址,最好的选择是发送电子邮件,然后监控是否有任何退回邮件 - 我自己使用 AWS SES,它会响应发送是否成功。你可以找到AWS PHP SDK here

如果您想使用 AWS SES,请注意,您需要经过一个审批流程,直到他们允许您向任何人发送电子邮件。

【讨论】:

    猜你喜欢
    • 2013-11-28
    • 2019-02-13
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    相关资源
    最近更新 更多