Python IMAP: =? Utf-8? Q? в строке темы

Я показываю новое письмо с IMAP, и все выглядит отлично, за исключением одного объекта сообщения, как:

=?utf-8?Q?Subject?=

Как я могу это исправить?

Ответ 1

В терминологии MIME эти закодированные куски называются закодированными словами. Вы можете декодировать их следующим образом:

import email.Header
text, encoding = email.Header.decode_header('=?utf-8?Q?Subject?=')[0]

Подробнее читайте в документах email.Header.

Ответ 2

Это MIME закодированное слово. Вы можете проанализировать его с помощью email.header:

import email.header

def decode_mime_words(s):
    return u''.join(
        word.decode(encoding or 'utf8') if isinstance(word, bytes) else word
        for word, encoding in email.header.decode_header(s))

print(decode_mime_words(u'=?utf-8?Q?Subject=c3=a4?=X=?utf-8?Q?=c3=bc?='))