如何在Python中解码二进制编码的邮件消息?
我正在写一个谷歌应用引擎的应用程序,用来处理收到的邮件。以下是我目前用来处理邮件的代码:
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 个回答
1
与其重新发明轮子,不如试试Python自带的邮件解析器。
http://docs.python.org/library/email.parser.html
这个解析器是专门用来处理各种不同格式的邮件,把它们转换成好用的Python对象。你可以用它来解析邮件,这样你就能得到一些很容易使用的对象。
需要注意的是,邮件模块并不负责发送和接收邮件,它只是帮助你把邮件整理好并解析出来。