当前位置: 首页 > 面试题库 >

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

柯学
2023-03-14
问题内容

我碰到过此PHP代码,无需发送电子邮件即可使用SMTP检查电子邮件地址。

有没有人尝试过类似的方法或对您有用?您能告诉客户/用户输入的电子邮件是否正确并且存在吗?


问题答案:

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

  1. 您可以连接到服务器,然后发出VRFY命令。很少有服务器支持此命令,但正是为此目的而设计的。如果服务器以2.0.0 DSN响应,则该用户存在。

    VRFY user
    
  2. 您可以发出RCPT,然后查看邮件是否被拒绝。

    MAIL FROM:<>
    

    RCPT TO:user@domain

如果该用户不存在,您将获得5.1.1
DSN。但是,仅因为未拒绝电子邮件并不意味着该用户存在。某些服务器会像这样静默丢弃请求,以防止枚举其用户。其他服务器无法验证用户,并且无论如何都必须接受消息。

还有一种称为灰名单的反垃圾邮件技术,该技术将导致服务器最初拒绝该地址,并期望真正的SMTP服务器将在一段时间后尝试重新发送。这会弄乱验证地址的尝试。

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



 类似资料:
  • 我遇到了这个PHP代码使用SMTP检查电子邮件地址而不发送电子邮件。 有没有人尝试过类似的方法,或者对你有用吗?你能判断客户/用户输入的电子邮件是否正确和是否存在吗?

  • 问题内容: 我想在某些模型类上运行单元测试(Junit),这些模型通常会发送电子邮件确认发生了什么事情。是否有可以与单元测试一起使用的模拟电子邮件服务器,该服务器可以让您确认您的运行尝试发送电子邮件而不实际发送电子邮件? 这似乎很高兴,只是不确定我是否想自己写。电子邮件方面的应用程序堆栈是Velocity + Spring,因此如果可以通过简单地更改applicationContext.xml文件

  • 嗨,我正试图在后台发送一封电子邮件,而没有应用程序。我考虑过使用GMailSender/jsse,有人提到/我很难将包添加到GMailSender,这是以前在new com.provider.jsseprovider()中问到的,不能解析符号提供者,但是当我键入包名时会出现错误。 完整代码

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送

  • 问题内容: 有没有一种使用正则表达式检查表单输入的好方法,以确保它是正确的样式电子邮件地址?自昨晚以来一直在搜索,如果它是子域的电子邮件地址,则回答了有关该主题的人们疑问的每个人似乎也有问题。 问题答案: 无关紧要。即使你可以验证该电子邮件地址在语法上是有效的,你仍然需要检查该电子邮件地址是否未键入错误,以及该地址是否确实属于你认为确实有用的人。唯一的方法是向他们发送电子邮件,并让他们单击链接进行