当人们互相发送电子邮件时,他们通常在回复发件人时包含原始电子邮件,每次都在电子邮件中添加更多信息。每个电子邮件客户端似乎都有不同的方式将原始电子邮件添加到回复中。
我需要解析到达我们邮件服务器的电子邮件并尝试提取消息的新部分,我想知道是否有一种明智的方法可以去除这个附加(或前置)信息(“原始消息”)并且只是在邮件正文中获取新信息?我很遗憾地相信,没有编码,原始电子邮件只是简单地添加到新邮件中,但我想我会咨询专家?
谢谢。
不,没有简单、直接的算法可以将引用或转发的文本与新内容分开。引用和转发的标准化很差,并且在不同的时间存在不同的约定。
话虽如此,例如 Google 的 Gmail 在实践中相当成功。有了足够的样本,您就可以清楚地提出合理的启发式方法。
引用材料的良好指示符是转发(伪)标题和缩进文本,可能在引用文本之前的左边距有一个引用指示符。您偶尔也会看到凹痕。
传统上,在 1990 年代初的 Usenet 上,人们会使用不同的、独特的引用风格。
: ~ | This seems to be the original.
: ~ This is the first reply.
: This is the second reply.
This is the third reply, quoting the
previous three messages in sequence.
大约在 1995 年左右,客户和标准化倡议大体上都集中在“楔形”报价上;
> >> This seems to be the original.
> > This is the first reply.
> This is the second reply.
This is the third reply, quoting the
previous three messages in sequence.
然后微软来了,毁了这一切。我认为在某些公司环境中,您需要快速收集从线程到新参与者的所有背景,但即使出于这个目的,它也是一个可怕的可憎之处。
This is the third reply, quoting the
previous three messages in sequence.
---- Begin forwarded message ----
From: Him [smtp:bogus]
To: His Friend
Subject: VS: Re: Same as on this message
Date: nothing machine-readable
This is the second reply.
---- Alkuperäinen viesti ----
Lähettäjä: His Friend [smtp:poppycock]
Saaja: Some Guy
Aihe: Re: Same as on this message
Päivämäärä: olisiko eilen ehkä
This is the first reply.
----- Original message ----
From: Somebody Else [smtp:mindless]
To: Some Guy
Subject: Same as on this message
Date: like, the day before
This seems to be the original.