我正在写一些代码为解析转发电子邮件。如果也许有一些Python库是什么我不知道是,一些RFC我能坚持或其他一些资源,让我来自动执行任务。

要准确,我不知道,如果转发电子邮件的“布局”是由一些标准或建议覆盖,或者它刚刚经过多年的发展所以现在大多数电子邮件客户端生成文本部分类似的输出:

    Begin forwarded message: 

    > From: Me <me@me.me>
    > Date: January 30, 2010 18:26:33 PM GMT+02:00
    > To: Other Me <other-me@me.me>
    > Subject: Unwise question

- 和野生去附着物(和任何其他的MIME部分可以在那里)。

如果它仍然不够精确,我会澄清,这只是我不是100%肯定该怎么问(RFC,Python的lib下,公约或其他什么东西)。

有帮助吗?

解决方案

在我的经验,只是以往的电子邮件客户端转发/答复不同。通常你会在邮件包的底部有在MIME纯文本版本和HTML编码版本。邮件标题确实有RFC( http://www.faqs.org/rfcs/rfc2822.html “2822” ),但不幸的是该消息体的含量超出侧的范围。

你不仅有邮件客户端方差抗衡,但用户偏好的变化。作为一个例子:在顶部的Lotus Notes放答复和Thunderbird答复在底部。所以,当一个雷鸟用户答复Lotus Notes用户的回复,他们可能会在顶端插入他们的答复,并在底部留下他们的签名。

另一个缺陷可能与回答链的自动换竞争

>>>>外答复越过限制,是由字搜索包梁 中间的回答者的邮件客户端\ n点击 >>中间回复的邮件正文点击 >上回复结果 最新答复结果

我不会解析该消息,而让用户在他们的头进行解析。或者,我会从其他项目借用代码。

其他提示

不像许多其他人说什么,有在转发的邮件标准,的 RFC 2046 , ”多用途Internet邮件扩展(MIME)第二部分:媒体类型“,超过十岁。见特别是其第5.2节,“消息的媒体类型”。

后面RFC 2046的基本思想是封装一个消息到另一个的MIME部分,命名类型的(不幸)message/rfc822(不要忘记,MIME是递归的)。的 MIME的Python库可以精细处理它。

我没有downvote其他的答案,因为他们是正确的一个方面:后面没有每个邮件的标准。例如,邮包能够转发在RFC 2046格式,而且在即席格式的消息。所以,在实际应用中,邮件可能无法处理只能RFC 2046,它也有分析各种他人和尚未得以确认的语法。

至于其他的答案已经表明:没有标准,你的程序不会是完美无瑕的。

您可以看一下头,特别是User-Agent头,看样的客户端使用的是什么,并为最常见的客户端代码具体。

要找出你应该考虑客户的支持,看看如此受欢迎研究。各种展望,雅虎,Hotmail的,Mail.app,iPhone的邮件,Gmail和Lotus Notes的排名高度。邮件的约11%被归类为“无法检测”,但使用头从转发的电子邮件,你也许能够做的更好。注意,统计通过放置一个图像的电子邮件的内部,所以结果可能是偏斜的聚集。

的另一个问题是HTML邮件,其可以或可以不包括纯文本版本。我不知道客户在这方面的日常行为。

标准的应答/向前>预先考虑每一行的次数的邮件被嵌套包括谁发送的初始电子邮件的数目是由客户端进行梳理。因此,你需要在Python做的是简单地添加>到各行的开始。

imap Test <imap@gazler.com> Wrote:
>
>twice
>imap Test wrote:
>> nested
>>
>> imap@gazler.com wrote:
>>> test
>>>
>>> -- 
>>> Message sent via AHEM.
>>>   
>>
>

附件只是单纯的需要连接到邮件或你把它“去野外。”

我不熟悉Python,但相信该代码将是:

string = string.replace("\n","\n>")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top