使用perl将电子邮件与原始电子邮件分开

时间:2013-05-20 17:01:19

标签: perl email

当人们互相发送电子邮件时,他们通常会在回复发件人时附上原始电子邮件,每次向电子邮件添加更多信息。每个电子邮件客户端似乎都有不同的方式将原始电子邮件添加到回复中。

我需要解析到达我们邮件服务器的电子邮件并尝试提取邮件的新部分,我想知道是否有一种明智的方法来删除这些附加(或前置)信息(“原始邮件”) )并在邮件正文中获取新信息?我很遗憾地认为,没有编码,原始电子邮件只是添加到新邮件中,但我想我会与专家核实一下?

感谢。

1 个答案:

答案 0 :(得分:2)

不,没有简单,直接的算法将引用或转发的文本与新内容分开。报价和转发的标准化程度很低,不同时期存在不同的惯例。

话虽如此,例如谷歌的Gmail在实践中取得了相当不错的成功。有足够的样本,你可以清楚地提出合理的启发式方法。

引用材料的良好指标是转发(伪)标题和缩进文本,可能在引用文本之前的左边距带有引号指示符。你偶尔也会看到外人。

传统上,在20世纪90年代早期的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.