imaplib fetch 格式问题:RFC822 与 UTF-8 不一致?
我想读取一封以utf8格式编码的电子邮件消息。但是用下面的代码读取时出现问题。我想我需要使用不同的格式,但应该用什么格式呢?该怎么做呢?输出结果显示“Österreich”变成了“=C3=96sterreich”。到目前为止,我有这些...谢谢。
import imaplib
import email
imap4 = imaplib.IMAP4(SERVER)
imap4.login(USER, PASSWORD)
imap4.select()
typ, data = imap4.search(None,'(UNSEEN SUBJECT "%s")' % subject)
for num in data[0].split():
typ, data = imap4.fetch(num,'(RFC822)')
msg = email.message_from_string(data[0][1])
typ, data = imap4.store(num,'-FLAGS','\\Seen')
print msg
1 个回答
3
MIME容器里的数据通常是用一种叫“quoted-printable”的编码方式来处理的。我对imaplib
的内部工作原理不太了解,但我觉得你需要找的是quopri.decodestring()
这个方法。