是否有可实施(非理论)的方式来certificate电子邮件地址是否属于真实的电子邮件帐户?

有没有办法certificate某个电子邮件地址是“真实的”,因此属于真正存在的电子邮件帐户? 我通过根据电子邮件模式定义有效的电子邮件获得大量注册,但实际上并不存在。 发送到假邮件地址需要花费很多钱,因为我们(和其他人)按邮件付费(向假邮件帐户发送100,000个邮件会使您每年花费四位数,只是为了显示一个数字)。 我想确切地检查那一刻。 我们不关心电子邮件地址是否在1分钟后离线。

理想的解决方案是使用bash one-liner(可以使用每种主要语言调用)。

到目前为止我做了什么:

  1. 检查这个类似的3yo线程 ,这对于真实案例来说是完全错误的。 我想检查是否存在电子邮件地址,在我发送邮件的那一刻(以防止费用)。
  2. 检查主机名是否可ping。
  3. 检查电子邮件地址是否可以ping通,就像这里一样。 我尝试在bash脚本中重建它,但失败了(获取地址很难!)。

我真正想要的是什么:

可靠的检查邮件帐户是否可由普通编码器以PHP或Java实现。 一个bash单行或一个php / java库就是这样做的。 免费或商业。

我会提供赏金!

它被称为“双重选择”。

  1. 用户在您的注册表单中输入他们的电子邮件地址。
  2. 用户点击一个显示“是的,请给我发电子邮件”的方框。
  3. 您向该用户发送一封电子邮件,其中包含“嗨,这是为了确认您的帐户。请点击此链接 。”
  4. 点击链接后,您将获得尽可能多的确认信息,并且您不太可能成为垃圾邮件发送者,或者被误认为是垃圾邮件发送者。

其他不浪费付费电子邮件的魔法咒语是:

  • “使用知道500级SMTP错误意味着什么的邮件程序”[aka,not mail() ]并从列表中删除该人。
  • “跳出处理”并从列表中删除该人。
  • “有效的取消订阅流程”,但也可以从列表中删除该人。 我提到它应该有效吗?

如果您[或任何阅读此内容的人]没有自愿收集您的电子邮件列表而没有至少某个级别的用户选择使用高级技术,我们的电子邮件管理员会称之为“小便绳索”,您可以从高处挂一段绳索放置并看看它正下方有多高。

即使您发送的地址不存在,电子邮件管理员也可以选择全部尝试发送“确定”。 我这样做的部分原因是让垃圾邮件发送者更难“学习”我域中的地址。

更好的做法是要求通过带有validation码(某种类型)的网络表单进行注册,然后发送validation电子邮件,而不是通过电子邮件接受批量注册。 (如果你还没有这样做)。

如果您有足够的历史记录来构建,您可能需要在发送之前创建一个已知错误电子邮件地址的黑名单。 您的注册人有多少是mailadmin@yourdomain.comroot@google.com

对于我的业务,​​我们在本地托管SMTP服务器,以避免与合法电子邮件活动中的传递失败相关的成本。 否则我会烧钱并把沙子铲到海里。

SMTP协议不旨在提供检查邮箱可用性的方法。

在发送电子邮件时,通常会执行以下步骤:

检查邮件域的MX记录

发送到somebody@example.com的邮件将检查example.com是否有MX记录。 如果有一些,将联系具有最高优先级的人接受邮件。 如果它没有响应,将联系任何具有较低优先级的现有MX。

如果没有MX记录,将搜索example.com的“A”记录,并且将连接该IP以接受邮件。

连接到MX或A记录中提到的服务器

联系接收邮件服务器。 如果它存在,邮件可能会交付。 SMTP协议要求发送邮件服务器发送接收邮件地址,发送邮件地址,然后发送邮件本身。

接收邮件服务器尝试将邮件传递到用户邮箱

这可能由于几个原因而失败。 并且重要的信息是,在发送邮件服务器得到收到邮件的肯定答复之后,可能会发生此步骤,并且连接已终止。 因此,发送邮件服务器可能无法确定传递失败。

在这种情况下,接收邮件服务器将发送退回邮件。 但是这个退回邮件会被发送到指定接收错误的邮件地址。 这可能是原始邮件地址,但也可能是另一个。 此外,接收退回的负责邮件服务器不能是发送原始邮件的服务器。

在这一点上,很明显电子邮件确实是一种异步信息交换媒介,内置几乎没有任何可靠性。

虽然希望稍微改进一些技术,但是通常发送退回消息并不是最好的想法。 配置良好的邮件服务器拒绝接收有任何问题的邮箱的邮件,例如它们不存在或已满。

另一方面,邮件的新大黑洞是垃圾邮件filter。 通常这些是由用户配置的,并且邮件服务器将很乐意接收现有邮箱的任何邮件,但随后垃圾邮件会自动删除或移动到垃圾邮件文件夹并被忽略。

此外,还有一种像灰名单这样的技术可以回应任何传递具有临时故障状态的邮件的尝试。 普通邮件服务器将在稍后尝试,并且最终灰名单计时器结束(在某些设置中可能超过一小时),并且进行真正的传递尝试,具有真正的最终拒绝或接受。 与此同时,邮件服务器希望它包含垃圾邮件filter来检测垃圾邮件的新浪潮,并且灰名单只能购买一段时间。 众所周知的邮件服务器的任何定期传递尝试都会立即成功,因为成功的非垃圾邮件传递会被列入白名单。

在对真实邮件如何工作的所有描述之后,我认为你可以看到真的没有办法“简单地”检测邮件地址是否确实存在。 你唯一能做的就是检测它是否存在,如果你肯定地告诉你邮箱不存在,因为目标邮件服务器拒绝传递,你可以假设你可能不应该再尝试将邮件传递给该目标。

任何其他结果都不会告诉你任何事情。 您还会注意到,检测邮件地址是否存在需要您发送邮件 – catch-22情况。

您真的应该实施适当的退回管理和传递故障检测,以删除明显的失败邮件地址。 还有其他事情是无法察觉的。