我正在从 POP3 服务器获取电子邮件,我想在普通电子邮件和 DSN(送达状态通知)/NDR(未送达报告/收据)消息之间做出区分。
识别这些消息的最佳/最安全方法是什么?我应该寻找任何特定的消息头吗?
提前致谢!
一些邮件服务器实现RFC 3464。这样做的人通常会生成传递状态通知,其消息头 Content-Type 为 multipart/report 和三个组成部分(text/plain、message/delivery-status 和 message/rfc822)。因此,您可以检测消息的这些特征并相应地进行处理。该消息通常如下所示:
来自:“邮件传递系统”<MAILER-DAEMON@example.com>
主题:传递状态通知(失败) 内容类型:multipart/report;报告类型=交付状态Content-Type: text/plain 交付状态通知的人类可读解释。
内容类型:消息/交付状态 交付状态通知的结构化机器可读原因。
Content-Type:message/rfc822 原始消息。
对于那些以非结构化格式生成传递状态通知的邮件服务器,可能仍然需要通过分析 From: 和 Subject: 邮件标题的文本来检测它们的通知。