imaplib fetch 格式问题:RFC822 与 UTF-8 不一致?

0 投票
1 回答
1439 浏览
提问于 2025-04-17 03:10

我想读取一封以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()这个方法。

撰写回答