python'unflow'格式=流动的电子邮件

时间:2013-08-05 18:14:51

标签: python email thunderbird

发送时

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. 

在上面引用的一行电子邮件中,thunderbird将其转换为:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy 
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam 
voluptua.

我相信,这与format=flowed标题有关:

Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

当在雷鸟中显示邮件时,它看起来完全没问题。该行显示为一行。 但是,当使用pythons Message.get_payload解析它时,仍会显示换行符,完全破坏了可读性。

如何让python将这些“流动”的文本行转换为普通文本?

1 个答案:

答案 0 :(得分:4)

使用formatflowed library将此类文字转换为“常规”文字:

from formatflowed import convertToWrapped

text = convertToWrapped(msg.get_payload(), character_set=msg.get_charset())

请注意,您需要传入字节字符串,而不是unicode值;库为您解码为Unicode。

强制性免责声明:我是该图书馆的作者,虽然现在已经很久了。