我想在 Python 中解码'quoted-printable' 编码的字符串,但我似乎被困在一个点上。
我根据以下代码从我的 gmail 帐户中获取某些邮件:
import imaplib
import email
import quopri
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('mail@gmail.com', '*******')
mail.list()
mail.select('"[Gmail]/All Mail"')
typ, data = mail.search(None, 'SUBJECT', '"{}"'.format('123456'))
data[0].split()
print(data[0].split())
for e_mail in data[0].split():
typ, data = mail.fetch('{}'.format(e_mail.decode()),'(RFC822)')
raw_mail = data[0][1]
email_message = email.message_from_bytes(raw_mail)
if email_message.is_multipart():
for part in email_message.walk():
if part.get_content_type() == 'text/plain':
if part.get_content_type() == 'text/plain':
body = part.get_payload()
to = email_message['To']
utf = quopri.decodestring(to)
text = utf.decode('utf-8')
print(text)
.
.
.
'to'
例如,如果我打印,如果 'to' 具有 é、á、ó 等字符,则结果是这样的:
=?UTF-8?B?UMOpdGVyIFBldMWRY3o=?=
我可以使用quopri库body
成功解码 ' ' 带引号的可打印编码字符串,如下所示:
quopri.decodestring(sometext).decode('utf-8')
但是相同的逻辑不适用于电子邮件的其他部分,例如收件人、发件人、主题。
有人知道提示吗?