python - 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
.
解决方案
主题已根据 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.'
推荐阅读
- c++ - 运行dijkstra算法的问题
- javascript - 如何恢复默认事件侦听器以提交表单
- c - Leetcode:AddressSanitizer 堆缓冲区溢出
- r - 如何在数据框中找到与给定向量最相似的行
- ios - 如果我在 IOS Swift 上有地点坐标信息,我们如何检索 PlaceID
- ios - Google OAuth 登录:iOS 应用程序中的 redirect_uri_mismatch 错误
- html - 无法在最大宽度为 375px 的移动设计上隐藏 SVG 图形的溢出
- python - 为什么使用 __init__(self, **kwargs) 返回以下错误代码:SyntaxError: invalid syntax?
- c++ - strchr函数内的Valgrind memcheck错误
- clojure - 尝试从文本文件中读取数据并填充整数列表