如何检测自动生成的电子邮件

国际新闻 浏览(1594)

   15:40:07 科技实验室

  df847cc6bf1829da456208da46142323.jpeg

  当你用电子邮件系统发送自动回复时,你需要注意不要向自动生成的电子邮件发送回复。最好的情况下,你将获得无用的投递失败消息。更可能的是,你会得到一个无限的电子邮件循环和一个混乱的世界。

  -- Martin Tournoij(作者)

  当你用电子邮件系统发送自动回复时,你需要注意不要向自动生成的电子邮件发送回复。最好的情况下,你将获得无用的投递失败消息。更可能的是,你会得到一个无限的电子邮件循环和一个混乱的世界。

  事实证明,可靠地检测自动生成的电子邮件并不总是那么容易。以下是基于为此编写的检测器并使用它扫描大约 100,000 封电子邮件(大量的个人存档和公司存档)的观察结果。

  Auto-submitted 信头

  由 RFC 3834 定义。

  这是表示你的邮件是自动回复的“官方”标准。如果存在 Auto-Submitted 信头,并且其值不是 no,你应该不发送回复。

  X-Auto-Response-Suppress 信头

  由微软 定义。

  此信头由微软 Exchange、Outlook 和其他一些产品使用。许多新闻订阅等都设定了这个。如果 X-Auto-Response-Suppress 包含 DR(“抑制投递报告”)、AutoReply(“禁止 OOF 通知以外的自动回复消息”)或 All,你应该不发送回复。

  List-Id 和 List-Unsubscribe 信头

  由 RFC 2919 定义。

  你通常不希望给邮件列表或新闻订阅发送自动回复。几乎所有的邮件列表和大多数新闻订阅都至少设置了其中一个信头。如果存在这些信头中的任何一个,你应该不发送回复。这个信头的值不重要。

  Feedback-ID 信头

  由谷歌 定义。

  Gmail 使用此信头识别邮件是否是新闻订阅,并使用它为这些新闻订阅的所有者生成统计信息或报告。如果此信头存在,你应该不发送回复。这个信头的值不重要。

  非标准方式

  上述方法定义明确(即使有些是非标准的)。不幸的是,有些电子邮件系统不使用它们中的任何一个 :-( 这里有一些额外的措施。

  Precedence 信头

  在 RFC 2076 中没有真正定义,不鼓励使用它(但通常会遇到此信头)。

  请注意,不建议检查是否存在此信头,因为某些邮件使用 normal 和其他一些(少见的)值(尽管这不常见)。

  我的建议是如果其值不区分大小写地匹配 bulk、auto_reply 或 list,则不发送回复。

  其他不常见的信头

  这是我遇到的另外的一些(不常见的)信头。如果设置了其中一个,我建议不发送自动回复。大多数邮件也设置了上述信头之一,但有些没有(这并不常见)。

  X-MSFBL:无法真正找到定义(Microsoft 信头?),但我只有自动生成的邮件带有此信头。X-Loop:在任何地方都没有真正定义过,有点罕见,但有时有。它通常设置为不应该收到电子邮件的地址,但也会遇到 X-Loop: yes。X-Autoreply:相当罕见,并且似乎总是具有 yes 的值。

  Email 地址

  检查 From 或 Reply-To 信头是否包含 noreply、no-reply 或 no_reply(正则表达式:^no.?reply