如何区分自动回复和正常收到的邮件

How to differentiate between the automatic reply and the normal mail received

我正致力于在我的 springboot 应用程序中接收邮件。为了获取和存储接收邮件。我正在使用 imap 邮件监听器。我正在存储两种类型的邮件。一种是多部分负载类型,另一种是字符串负载类型。

收到邮件后,我正在尝试使用 java 邮件发送 auto-generated 邮件。 我面临的问题是从我的应用程序生成 auto-reply 的最坏情况,即无限循环。

有人可以帮助我区分收到的普通邮件和收到的 auto-reply 我的邮箱,并从我的系统中只为那些不是 auto-reply 的邮件生成 auto-replies类型。

如果通过 headers 检查的代码解释就更好了。我遇到了几个 headers,比如 x-Autosubmitted。但是如果我试图在控制台中打印值,它们将返回 null。

下面描述了 auto-submmitted 标记,您可能会觉得有用:

  • auto-generated - 表示消息是由自动过程生成的,不是对另一条消息的直接响应。
  • auto-replied - 表示一条消息是作为对另一条消息的直接响应而自动生成的。
  • auto-notified - 表示消息是由 Sieve 通知系统生成的。
  • no - 表示消息不是自动生成的,而是由人创建的。这相当于完​​全没有 Auto-Submitted header。

RFC 2822 声明如下:

Though optional, every message SHOULD have a "Message-ID:" field.
Furthermore, reply messages SHOULD have "In-Reply-To:"

因此,您可以检查 header 中的“In-Reply-To:”值。

您还可以将自己的值添加到外发电子邮件中,这样您就可以区分系统自动生成的回复和手动创建的回复。