我使用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()
但是,查看数据库,除了消息体(有效负载)的最后一行之外的所有行都具有等号。你知道为什么会这样吗?
答案 0 :(得分:2)
quopri
Python模块(documentation)对其进行解码:
msg.decode('quopri').decode('utf-8')
答案 1 :(得分:0)
针对python 3.x的更新
您现在必须调用codecs
模块。
import codecs
bytes_msg = bytes(msg, 'utf-8')
decoded_msg = codecs.decode(bytes_msg, 'quopri').decode('utf-8')