首页 > 解决方案 > Gmail /主题的python电子邮件模块

问题描述

我正在使用电子邮件模块解析 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?=

. 谁能告诉我它是如何编码的以及我如何“提取”它?

非常感谢。

蟒蛇:2.7.13

.

标签: pythonpython-2.7email

解决方案


主题已根据 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.'

推荐阅读