当前位置: 首页 > 知识库问答 >
问题:

如何在不发送邮件的情况下检查邮件地址是否存在?

松献
2023-03-14

我遇到了这个PHP代码使用SMTP检查电子邮件地址而不发送电子邮件。

有没有人尝试过类似的方法,或者对你有用吗?你能判断客户/用户输入的电子邮件是否正确和是否存在吗?

共有1个答案

桑博远
2023-03-14

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

>

  • 您可以连接到服务器,并发出vrfy命令。很少有服务器支持此命令,但它的用意正是如此。如果服务器以2.0.0 DSN响应,则该用户存在。

    VRFY user
    

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

    MAIL FROM:<>
    RCPT TO:<user@domain>
    

    如果用户不存在,您将得到5.1.1 DSN。但是,邮件没有被拒绝,并不意味着用户的存在。有些服务器会静默地丢弃这样的请求,以防止枚举它们的用户。其他服务器无法验证用户,因此必须接受消息。

    还有一种名为greylisting的反垃圾邮件技术,它会导致服务器最初拒绝该地址,并期望一段时间后真正的SMTP服务器会尝试重新传递。这将破坏验证地址的尝试。

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

  •  类似资料:
    • 问题内容: 我碰到过此PHP代码,无需发送电子邮件即可使用SMTP检查电子邮件地址。 有没有人尝试过类似的方法或对您有用?您能告诉客户/用户输入的电子邮件是否正确并且存在吗? 问题答案: 有时 可以使用两种方法来确定收件人是否确实存在: 您可以连接到服务器,然后发出命令。很少有服务器支持此命令,但正是为此目的而设计的。如果服务器以2.0.0 DSN响应,则该用户存在。 您可以发出,然后查看邮件是否

    • 问题内容: 我正在使用 com.sun.mail.smtp.SMTPTransport 通过Java发送电子邮件。 我可以成功发送电子邮件,但是如果我将邮件发送到无效的电子邮件地址,则 SMTPTransport 不会出现任何错误。 有没有办法检查给定的邮件地址是否存在? 我的意思不是要检查 客户端 的邮件地址,我需要检查 服务器端的地址 。 我在许多论坛上都发现了许多类似的问题,但是我没有任何适

    • 我按照一个教程从php发送邮件。 我必须做的其他设置是什么,使其工作*运行后echo$this- 无法使用PHP mail()发送电子邮件。您的服务器可能未配置为使用此方法发送邮件

    • 我们可以检查电子邮件是否发送到CodeIgniter中的假地址吗?我使用了PHPMailer,它总是返回true。或者PHPMailer中还有另一个配置我不知道。

    • 问题内容: 我正在使用javax.mail用Java发送邮件。现在,项目概念的一部分已更改,我必须发送未经身份验证的邮件。我将不得不更改我的createSession()方法: 很明显,我应该更改为,但是我还应该更改什么? 问题答案: 我认为,就足够了。