转发电子邮件检测

Tim*_*mby 14 email

有没有办法检测(使用RFC 2822标题)电子邮件是转发的电子邮件?

dka*_*arp 18

有两件事通常被称为"转发".

当您将自动帐户级别转发设置为另一个电子邮件地址时,您的邮件系统通常会引入一个额外的标头,以使其能够检测和中断邮件循环.不幸的是,这个标题的名称从未标准化. 一些使用Delivered-To,一些使用X-Loop,一些使用X-Original-To,一些使用他们的邮件软件专有的X-header.但是没有单个标题字段可以显示所有情况.

通过单击邮件程序中的"转发"按钮手动转发邮件并输入收件人电子邮件地址和一些描述性文本时,将Message-ID生成带有新标题的新邮件.此消息上的标题集将与正常答复无法区分 - In-Reply-To并且References以完全相同的方式设置.唯一的区别是Subject标题通常以" Fwd:" 开头或以" (fwd)" 结尾.("通常",因为有些客户将其格式化为" [Fwd: <original subject>]",并在新主题周围加上方括号,有些客户端将前缀本地化Fwd:为他们自己的语言,有些用户Subject在点击"发送"之前手动编辑.)

因此,有一些好的提示可以转发消息,但没有严格的规则.


orl*_*rlp 5

阅读规范,CTRL+F 为“转发”提供以下标题字段:

resent-date     =       "Resent-Date:" date-time CRLF  
resent-from     =       "Resent-From:" mailbox-list CRLF  
resent-sender   =       "Resent-Sender:" mailbox CRLF  
resent-to       =       "Resent-To:" address-list CRLF  
resent-cc       =       "Resent-Cc:" address-list CRLF  
resent-bcc      =       "Resent-Bcc:" (address-list / [CFWS]) CRLF
resent-msg-id   =       "Resent-Message-ID:" msg-id CRLF
Run Code Online (Sandbox Code Playgroud)

我不确定主要的邮件软件是否使用这些。

编辑

阅读规范有点太快了,还有这个注释:

注意:将消息重新引入传输系统并使用重发字段与“转发”是不同的操作。“转发”有两个含义: 一种转发的意义是用户可以告诉邮件阅读程序将邮件的副本转发给另一个人,使转发的邮件成为新邮件的正文。从这个意义上说,转发的消息似乎不是来自原始发送者,而是来自消息转发者的全新消息。另一方面,转发也用于表示邮件传输程序获取消息并将其转发到不同的目的地以进行最终交付。重新发送的报头字段不适用于任何一种类型的转发。

没有其他“转发”通知,因此除了subject = "Fwd: <msg>"约定之外,没有可用于检测转发的标题字段。