Python получить электронную почту - PullRequest
1 голос
/ 09 июня 2019

Я получаю странное тело сообщения при попытке загрузить некоторые сообщения электронной почты с помощью Python.

Мой код:

session = imaplib.IMAP4_SSL(host_in, port_in)
session.login(login, password)

session.select('Inbox')
_response_status, response_body = session.search(None, '(UNSEEN)')
msg_id_list = response_body[0].split()

result = []
for msg_id in msg_id_list:
    _response_status, response_body = session.fetch(msg_id,
                                                    '(RFC822)')
    print(response_body[0][1].decode('utf-8'))

Для коротких сообщений все работает ОК. Но для некоторых сообщений я получаю правильные заголовки, но тело выглядит примерно так:

PGRpdj48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO2NvbG9yOiMwMDAwMDA7
... 20 lines of some chars ...
Pg0KPC9ibG9ja3F1b3RlPg0KPC9ibG9ja3F1b3RlPg0KPC9ibG9ja3F1b3RlPg0KPC9ibG9ja3F1
b3RlPg==

(я заменяю 20 строк символов на "... 20 строк некоторых символов ...") Тело выглядит одинаково для разных длинных сообщений, есть идеи, почему это происходит?

1 Ответ

0 голосов
/ 09 июня 2019

Я понял это.Почтовый сервер почему-то просто base64 кодирует тело, я пока не знаю почему.Но я могу расшифровать сообщения так:

import base64
base64.b64decode(my_wierd_msg_body_goes_here)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...