【问题标题】:Is it a good practise to validate email addresses using SMTP validation?使用 SMTP 验证来验证电子邮件地址是一种好习惯吗?
【发布时间】:2014-03-24 17:38:40
【问题描述】:

假设我有一个网站,其中包含一些需要电子邮件验证的功能(例如,用户注册)。当然,我会使用正则表达式验证电子邮件,但曾几何时,我在其他人的代码中看到了 SMTP 验证。 SMTP 验证有哪些优点和缺点?

我可以假设以下优点和缺点:

优点:

  • 我们可以检查一些电子邮件地址是否存在(并非所有 SMTP 服务器都允许此功能)。

缺点:

  • 我们的网站可以是blocked
  • 也许我们可以使用它来使网络服务器停机。网络服务器将获取电子邮件地址的域部分并向其发出请求。我们可以创建一个虚假的 SMTP 服务器,它会接收请求,但会造成很大的响应延迟。也许如果我们强制网络服务器进行数十次这样的检查,它可能无法回答其他客户端。
  • 并非所有 SMTP 服务器都提供此功能。

请有建设性。

【问题讨论】:

  • 通过发送电子邮件并要求他们单击链接/输入代码来验证它。这是唯一的方法。
  • @VBCPP:你真的读过这个问题吗? :)
  • @AmalMurali 当最优方法有据可查、易于实施且显而易见时,讨论次优方法的细节没有多大意义。
  • @VBCPP 不用说。但是我们可以在用户明白他弄错之前通知他他的电子邮件是无效的。此外还有其他情况,用户必须输入他的电子邮件,而我们无法发送确认消息。
  • 是的,您没有说明验证地址的原因。我可以输入president@whitehouse.gov,这是一个有效的地址。你仍然想确认我确实拥有它。

标签: smtp email-validation


【解决方案1】:

我假设“SMTP 验证”指的是 SMTP VRFY 命令,而在当今时代,相信它是愚蠢的。如果您是垃圾邮件发送者,这是一个很棒的功能,因为它允许您枚举给定服务器的电子邮件地址。

头脑正常的人不会将此命令暴露在互联网上,并让它以 252 send some mail, i'll try my best 以外的任何内容进行响应,即“我只会在实际邮件交易期间验证电子邮件地址”。

如今,VRFY 的唯一正常使用是作为垃圾邮件过滤设备和隐藏在其后面的邮件服务器之间的内部接口。

TL;DR 不要使用“SMTP 验证”,它会非常不可靠充其量

如果您想验证用户是否输入了有效的电子邮件地址,请向其发送一封包含激活链接/代码的电子邮件。

【讨论】:

  • 我喜欢你的回答:)。你已经证实了我的假设。
  • 在不发送邮件的情况下验证邮箱地址的其他方法有哪些?
  • @Elby:无,零,null,空集,nada。 唯一验证电子邮件地址的可靠方法是向其发送一封电子邮件,并让某人根据该电子邮件中的信息执行操作。这也可以为您提供双重选择加入,这有助于您不被归类为垃圾邮件发送者。
【解决方案2】:

除了 Sammitch 的回答之外,还有通过 API 提供的电子邮件验证服务,可以以合理的价格提供 SMTP 验证 - 有时甚至到邮箱级别。

您可以通过简单的 Google 搜索找到这些,但我听说 LeadSpend 和 QAS(Experian 子公司)是其中最好的。

【讨论】:

    猜你喜欢
    • 2011-03-11
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 2014-05-23
    • 2010-09-05
    • 1970-01-01
    • 2021-10-20
    • 2018-12-12
    相关资源
    最近更新 更多