5

我使用 POP3 从 Gmail 帐户下载邮件并将它们保存在 SQLite 数据库中以供进一步处理:

mailbox = poplib.POP3_SSL('pop.gmail.com', '995') 
mailbox.user(user) 
mailbox.pass_(password)

msgnum = mailbox.stat()[0]

for i in range(msgnum):
    msg = '\n'.join(mailbox.retr(i+1)[1])
    save_message(msg, dbmgr)

mailbox.quit()

但是,在数据库中查看,除了消息正文(有效负载)的最后一行之外的所有行都有尾随等号。你知道为什么会这样吗?

4

2 回答 2

4

弗雷德里克的链接让我找到了答案。该编码称为“引用可打印”(wiki),可以使用quopriPython 模块(文档)对其进行解码:

msg.decode('quopri').decode('utf-8')
于 2014-12-11T12:06:41.997 回答
1

python 3.x 的更新

您现在必须调用该codecs模块。

import codecs
bytes_msg = bytes(msg, 'utf-8')
decoded_msg = codecs.decode(bytes_msg, 'quopri').decode('utf-8')
于 2019-12-20T03:25:14.307 回答