Как я могу декодировать содержимое электронной почты, которое по-разному кодируется «Content-Transfer-Encoding»? - PullRequest
0 голосов
/ 23 апреля 2020

Я читаю электронные письма с помощью imaplib и обнаружил, что некоторые электронные письма имеют кодировку base64, а некоторые 7бит.

Я попытался расшифровать его с помощью значения Content-Transfer-Encoding.

Но даже более того, у некоторых есть заголовок 'Content-Transfer-Encoding' в объекте сообщения, тогда как у некоторых он есть в message.get_payload () [0].

Я могу разобраться с этими некоторыми случаями, но я думаю, что может быть больше случаев, которые я не нашел.

Есть ли лучший способ декодировать содержимое электронной почты, независимо от того, как оно закодировано?

Спасибо:)

1 Ответ

0 голосов
/ 23 апреля 2020

при использовании get_payload () я добавил опцию decode = True, чтобы она могла автоматически декодироваться при необходимости. ссылка

И затем isinstance (содержимое, байты) сообщает вам, нужно ли декодировать или нет.

...