Декодировка письма Gmail Python

Хочу прочитать последнее письмо которое мне пришло на прочту с помощью imaplib, Но тема и текст письма зашифрованы, как расшифровать? Текст что мне выдает и сам код снизу

('none none', 'Тут почта от кого пришла')
Wed, 28 Jul 2021 00:36:09 +0300
=?UTF-8?B?0J3QvtCy0LDRjyDQt9Cw0Y/QstC60LAg4oSWMzY3ODk0MTE=?=
<CAAzzXJgMW=tfFRHKs+5eBujcphzfs67pBv5bnNPfO58deAJrFA@mail.gmail.com>

Код

import imaplib
import email

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('***', '***')
 
mail.list()
mail.select("inbox")

result, data = mail.search(None, "ALL")
 
ids = data[0]
id_list = ids.split()
latest_email_id = id_list[-1]
 
result, data = mail.fetch(latest_email_id, "(RFC822)")
raw_email = data[0][1]
raw_email_string = raw_email.decode()

email_message = email.message_from_string(raw_email_string)

print(email.utils.parseaddr(email_message['From']))
print(email_message['Date'])
print(email_message['Subject'])
print(email_message['Message-Id'])

Заранее спасибо.


Ответы (1 шт):

Автор решения: gil9red

Попробуйте указать политику default в message_from_string (согласно ответу)

from email import policy
...

email_message = email.message_from_string(raw_email_string, policy=policy.default)

Пример:

from email import policy
import email

raw_email_string = """\
From: [email protected]
To: [email protected]
Subject: the next line has a space on it
\x20
Date: Mon, 8 Apr 2002 15:09:19 -0400
Message-ID: spam

Here's the message body
"""

email_message = email.message_from_string(raw_email_string, policy=policy.default)
print(email.utils.parseaddr(email_message['From']))
print(email_message['Date'])
print(email_message['Subject'])
print(email_message['Message-Id'])
print(email_message.get_payload())

Результат:

('', '[email protected]')
Mon, 08 Apr 2002 15:09:19 -0400
the next line has a space on it 
spam
Here's the message body
→ Ссылка