【问题标题】:Retrieve email contents with correct encoding检索具有正确编码的电子邮件内容
【发布时间】:2017-11-12 10:21:13
【问题描述】:

我正在尝试按照以下link 中指定的示例从我的 Gmail 帐户中检索一些电子邮件的正文。

但是,从下面的代码中,我不明白为什么原始消息被编码为 ASCII:

msg_str = base64.urlsafe_b64decode(message['raw'].encode('ASCII'))

有人能解释一下为什么会发生这种转换吗?从我阅读的文档中,原始消息已经是 b64url 编码的,所以我不明白需要额外的步骤吗?

另外,我的第二个问题是如何获得原始邮件编码,以允许我将电子邮件写入具有正确编码的文件;查看文档,我没有看到任何相关的内容。

【问题讨论】:

    标签: python python-2.7 email gmail-api


    【解决方案1】:

    urlsafe_b64decode 只能接受字节(字符串),不能接受 unicode。 由于原始消息仅包含 ASCII 数据,因此将 unicode 代码点编码为 ASCII 是安全的。

    【讨论】:

    • 谢谢,我不确定是否保证原始消息总是只有 ASCII 字符,我无法在文档中找到它;我猜这是一个众所周知的约定?
    • @Spektor 是的,base64 data 只是一种以 ASCII 格式表示二进制数据的格式。
    猜你喜欢
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 2016-01-15
    • 2020-08-06
    • 2012-03-04
    • 2012-12-26
    • 2019-08-14
    相关资源
    最近更新 更多