我正在springboot应用程序中接收邮件。以便提取和存储接收到的邮件。我正在使用imap邮件侦听器。我正在储存两种类型的邮件。一种是多部分有效载荷类型,另一种是字符串有效载荷类型。
收到邮件后,我尝试使用java邮件发送自动生成的邮件。我面临的问题是从我的应用程序生成自动回复的最坏情况,即无限循环。
有人能帮我吗?我可以区分在邮箱中收到的普通邮件和自动回复邮件,并从我的系统中只为那些不是自动回复类型的邮件生成自动回复。
如果能通过标题检查的代码进行解释,那就太好了。我遇到了一些像x-Autosubmitted这样的标题。但如果我试图在控制台中打印值,它们将返回null。
下面介绍了自动提交的标记,您可能会发现这些标记很有用:
- 自动生成-表示消息是由自动进程生成的,而不是对另一条消息的直接响应
- auto-responsed-表示自动生成一条消息作为对另一条消息的直接响应
- 自动通知-表示消息是由筛选通知系统生成的
- no-表示消息不是自动生成的,而是由人工创建的。这相当于完全没有"自动提交"标头
RFC 2822声明如下:
Though optional, every message SHOULD have a "Message-ID:" field.
Furthermore, reply messages SHOULD have "In-Reply-To:"
因此,您可以检查";在答复中:";标头中的值。
此外,您可以将自己的值添加到传出的电子邮件中,这样您就可以区分系统自动生成的回复和手动创建的回复。