验证Linux上的电子邮件地址

时间:2013-12-03 05:19:28

标签: linux email

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

例如:

sendmail -bv yyyyyy@othersite.com

其中yyyyyy可以是任何同时传递命令并始终报告“yyyyyy@othersite.com已验证”的内容。这似乎是正确的,但我认为这背后应该是错误的。为什么?

其他命令检查linux上的邮件地址是否可靠且可用,这是怎么做的命令?

3 个答案:

答案 0 :(得分:10)

简短回答: 没有100%可靠的方法来验证收件人电子邮件地址的存在,而不是实际在那里发送邮件并让收件人单击邮件正文中的链接。

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

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

答案 1 :(得分:1)

以下命令和链接解决了这个问题。

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

nslookup -type = mx examplesite.com;

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

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

答案 2 :(得分:1)

简而言之: 不,没有这样做的命令。

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

  1. 主机存在且具有邮件交换(使用nslookup进行DNS查找或等效)。
  2. MX接受信封到该地址,但是是转发服务器(可能是误报)。
  3. MX接受信封到地址,并且是“核心”服务器(通常无法从外部访问)。
  4. 如果有足够的时间(假设服务器不只是保持沉默),发送了一条没有反弹的真实消息。
  5. 发送了一条真实的邮件,收件人就是这样说的。
  6. 将关卡映射到它们的含义:

    • (0)绝对不存在。
    • (1,2)不确定。
    • (&gt; = 3)存在。

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