【问题标题】:How do you decode a binary encoded mail message in Python?如何在 Python 中解码二进制编码的邮件消息?
【发布时间】:2011-04-30 14:25:07
【问题描述】:

我正在编写一个处理传入邮件的 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 上模仿这种消息类型,以便调试和测试它?

感谢您的帮助, 凯文

【问题讨论】:

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


    【解决方案1】:

    与其重新发明轮子,不如尝试 Python 的内置电子邮件解析器。

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

    它旨在处理将各种不同的电子邮件格式转换为一个好的 Python 对象所涉及的繁重工作。使用它来进行解析,你会得到很好的可预测对象。

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

    【讨论】:

    • 如果您使用消息的“原始”属性,它将在 GAE 上工作,这很公平。谢谢保罗。
    • 太棒了。我不确定它的奇数处理能力有多好,但考虑到这些事情通常是如何运作的,我认为这可能是一个好机会。
    猜你喜欢
    • 2012-01-08
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多