Задать вопрос
UkaUkaa
@UkaUkaa
По специальности программист, по жизни леньтяй

Декодирование письма, как сделать?

Хочу прочитать последнее письмо которое мне пришло на прочту с помощью 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'])
  • Вопрос задан
  • 895 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
axifive
@axifive
Software Engineer
Тема и текст письма в base64

=?UTF-8?B?0J3QvtCy0LDRjyDQt9Cw0Y/QstC60LAg4oSWMzY3ODk0MTE=?=

Тут как раз содержится информация о кодировании:
UTF-8 - кодировка символов
B - Base64 кодировка в которой передается

from email.header import decode_header

subject = email_message['Subject']
bytes, encoding = decode_header(subject)[0]
print(bytes.decode(encoding))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы