【如何校验邮件地址的有效性】第二篇 :原理一

有潜在客户和合作伙伴的长邮件列表很常见。如果您运行在线业务电子邮件营销可能是您经常使用的工具。因此,方便您保持邮件清单的清洁。您的数据库中的电子邮件可能会在几个月甚至几年前收集,其中许多可能现在无效。

在这篇文章中,我们将发现电子邮件验证工具和脚本使用的技巧和技巧。电子邮件地址验证不像看起来那么简单。以下是我们将在本文中回答的一些问题:如何使用SMTP协议验证电子邮件地址?如何识别一个好的电子邮件地址,将传递一个消息?如何清理邮件列表?

我们在本文中提到了很多SMTP协议。其当前规范在 RFC 5321中 。不要犹豫,在阅读这篇文章时打开并阅读此RFC。

定义,SMTP基础和验证核心

什么是有效的电子邮件地址?我们定义一个电子邮件是有效的,如果有一个邮件服务器将接受该地址的消息。通过接收消息,我们意味着服务器从发件人读取消息的内容,但这并不意味着消息将被传递到收件人的邮箱。当然,这并不表示信息是否会被收件人读取。

使用SMTP协议执行电子邮件地址的验证。有几个SMTP命令可以用于此。这些是 EXPN , VRFY和 RCPT TO 。 现在的邮件系统很少启用EXPN 和 VRFY,所以最常见的验证命令是 RCPT TO 。在客户端可以使用RCPT TO 命令之前,必须执行几个步骤 

  1. 查找目标邮件服务器的IP地址。
  2. 建立与目标邮件服务器的连接。
  3. 发送HELO或EHLO命令。
  4. 发送MAIL FROM命令。
  5. 现在我们可以发送RCPT TO命令。

我们将在本文后面详细讨论这些步骤。我们现在关注 RCPT TO 命令。在我们的例子中,RCPT TO命令的唯一有趣的语法 是当它的参数是目标电子邮件地址时。例如:

RCPT TO:<name@example.com>

当客户端将此命令发送到服务器时,服务器将接受该电子邮件或报告错误。如果服务器识别地址并接受它,它将返回代码250或251。当我们收到此代码时,表示电子邮件地址有效。否则,它可能是也可能不是有效的。从4开始的返回码 - 即代码在400和499之间,被认为是临时错误。如果电子邮件地址根本不存在,通常不会返回。从5开始的返回码(即500到599之间的代码)保留用于永久错误,这意味着电子邮件地址不存在或者发送给它的消息将不被接受。

电子邮件验证过程有五种可能的结果:

  1. 电子邮件 地址有效 - 服务器返回250或251到 RCPT TO 命令。
  2. 电子邮件 地址可能是有效的 ,但是临时错误可以防止立即交付 - 通常会在 目标邮件服务器上安装一个 名单机制,并且可能会重复尝试向此电子邮件发送邮件。如果目标邮箱已满,也可能发生。
  3. 该电子邮件地址是有效的,但 每一个 其他的电子邮件 地址 在其领域 是有效的 -有一个 别名地址 为目标域启用。这意味着我们无法确定电子邮件地址是否代表真正的用户邮箱,或者是否将邮件发送到全部地址。
  4. 这是 无法确定 的电子邮件地址是否有效,但消息不会被传输-这发生在目标邮件服务器没有响应的情况。
  5. 电子邮件 地址无效 - 给定域没有邮件服务器,或邮件服务器向RCPT TO 命令返回永久的5xx错误 

这可能听起来不是很复杂,但真正的问题是正确地确定这些结果,并且不被当今邮件服务器实现的各种反垃圾邮件机制所误导

EmailCamel专注全球邮箱验证,让发邮件更容易!领取+200邮箱验证量,快速体验

扫码关注我们(已有+5000关注),获取邮箱验证及海外群邮干货!