如何在Python中解码二进制编码的邮件消息?

时间:2010-10-26 07:04:34

标签: python google-app-engine email encoding binary

我正在编写一个处理收到邮件的Google App引擎应用程序,这是我目前用来处理邮件的代码:

for content_type, body in email_bodies:
#8bit bug in mail messages - see bug report here
#http://code.google.com/p/googleappengine/issues/detail?id=2383
if body.encoding == '8bit':
    body.encoding = '7bit'

#test for html content
if content_type == "text/html":
    #parse html result

if content_type == "text/plain":
    decoded_msg_body = body.decode()

但是我刚收到一条使用二进制编码方案的消息,当我的程序尝试使用body.decode()处理消息时,我收到了一个UnknownEncodingError。该程序应该如何解析二进制内容类型?另外,我如何在本地版本的GAE上模仿此消息类型,以便我可以调试并测试它?

感谢您的帮助, 凯文

1 个答案:

答案 0 :(得分:1)

您应该尝试Python内置的电子邮件解析器,而不是重新发明轮子。

http://docs.python.org/library/email.parser.html

它旨在处理将各种不同的电子邮件格式转换为优秀的Python对象所涉及的提升。使用它来进行解析,你就可以得到很好的可预测对象。

电子邮件模块不会发送和接收邮件,只是将它们放在一起并解析出来。