модуль электронной почты Python для Gmail / тема - PullRequest
1 голос
/ 16 апреля 2019

Я анализирую электронные письма в формате mbox с модулем электронной почты.Письмо поступило от Gmail.

Важная часть кода:

import email

email_content = sys.stdin.read()
email_obj = email.message_from_string(email_content)
subject = email_obj['subject']

.

Для предмета я получаю немного странное кодирование.В необработанном тексте это выглядит так:

Subject: =?UTF-8?B?MjAxOS4gw6FwcmlsaXMgMjUu?=

.Кто-нибудь может сказать мне, как это закодировано и как мне «извлечь» его?

Большое спасибо.

Python: 2.7.13

.

1 Ответ

2 голосов
/ 16 апреля 2019

Тема была закодирована в соответствии с RFC 2047. Это связано с тем, что тема электронного письма является тегом заголовка, а теги заголовка должны быть ascii.

Для декодирования:

>>> from email.header import decode_header
>>> decode_header("Subject: =?UTF-8?B?MjAxOS4gw6FwcmlsaXMgMjUu?=")
[('Subject:', None), ('2019. \xc3\xa1prilis 25.', 'utf-8')]

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

'2019. április 25.'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...