【问题标题】:verify email address on Linux在 Linux 上验证电子邮件地址
【发布时间】:2013-12-19 01:21:35
【问题描述】:

我正在使用sendmail -bv example@othesite.com 之类的命令来验证某个电子邮件地址,以在向人们发送实际电子邮件之前确认该地址是否有效。 它适用于我测试过的大多数网站。但有时,我使用的是 sendmail 对于一些网站,无论我输入什么地址名称,我都会通过 同一个网站。

例如:

sendmail -bv yyyyyy@othersite.com

其中yyyyyy 可以是任何也通过命令并始终报告“yyyyyy@othersite.com已验证”的内容。这似乎是正确的,但我认为这背后应该有问题。为什么?

其他在linux上检查邮件地址的命令将是可靠和可用的,这是如何以及使用什么命令?

【问题讨论】:

标签: linux email


【解决方案1】:

简答: 除了实际发送邮件并让收件人点击邮件正文中的链接之外,没有 100% 可靠的方法来验证收件人电子邮件地址的存在。

说明: 大多数这些地址验证工具所做的是联系收件人服务器,启动 SMTP 会话并使用 SMTP“RCPT TO”(或有时是“VRFY”)命令检查服务器是否响应 200 OK550 个用户未知。如果服务器进行收件人验证,则此方法有效,但许多服务器只是先接受所有内容,然后在收件人不存在时退回邮件。即使启用了收件人筛选,某些系统(例如 Exchange 2013)也仅在 SMTP DATA 阶段之后以“用户未知”响应,这意味着您实际上必须在获得结果之前发送完整的邮件。

更高级的验证系统也会检查退回邮件,但即使这样也不可靠。没有退回可能意味着收件人地址存在,但也可能意味着地址探测已被隔离,或者您只是没有等待足够长的时间来退回。

【讨论】:

  • 迄今为止我看到的对主机响应不一致行为的最短解释。做得很好。
【解决方案2】:

简而言之: 不,没有执行此操作的命令。

获得存在的信心: 虽然没有完全准确的方法来验证电子邮件地址的存在,而无需最终用户单击电子邮件中的签名链接,但有很长、详细的 guides 关于如何获得一种“信心水平”的方法地址的存在。这些级别的粗略分类如下:

  1. 主机存在并且有邮件交换(使用 nslookup 或等效的 DNS 查找)。
  2. MX 接受到地址的信封,但它是一个转发服务器(可能是误报)。
  3. MX 接受到地址的信封,并且是“核心”服务器(通常无法从外部访问)。
  4. 如果有足够的时间(假设服务器不只是保持沉默),发送的真实消息并未退回。
  5. 发送了一条真实的消息,并且收件人表示了这一点。

并将级别映射到它们的含义:

  • (0) 绝对不存在。
  • (1,2) 是不确定的。
  • (>=3) 存在。

您可以找出哪些 MX 接受到明显不存在的地址的信封,从而能够区分置信度 2 和 3。

【讨论】:

    【解决方案3】:

    下面的命令和链接已经解决了这个问题。

    -nslookup 命令帮助查找 examplesite.com 的邮件服务器地址

    nslookup -type=mx examplesite.com;

    -https://superuser.com/questions/224015/how-to-check-if-email-address-does-exist

    链接中的回答说明有助于完整验证电子邮件地址

    【讨论】:

      猜你喜欢
      • 2014-06-12
      • 1970-01-01
      • 2018-03-13
      • 2011-09-02
      • 2013-02-20
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      相关资源
      最近更新 更多