Python 获取电子邮件

标签 python email

尝试使用 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 行一些字符...”) 不同的长消息的正文看起来是相同的,知道为什么会发生这种情况吗?

最佳答案

我明白了这一点。由于某种原因,电子邮件服务器仅对正文进行 base64 编码,我还不知道为什么。但我可以像这样解码消息:

import base64
base64.b64decode(my_wierd_msg_body_goes_here)

关于Python 获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56511787/

相关文章:

python - 卸载 pip 会删除其所有软件包吗?

javascript - 电子邮件简讯中的 Google+ 关注按钮

c# - 包含附件的 SmtpClient.Send 是否锁定附件?

email - 切换到office365后outlook发新邮件不起作用

python - 将 tf.data.Dataset 包装到 tf.function 中是否可以提高性能?

python - 从提交树中提取与代码更改相关的提交

python - 在 python 中分组字典键值

python - 在 Bokeh 中隐藏图例旁边的注释

python - flask 邮件(python): Running out of application context error

html - 在 Outlook html 消息中使用相对位置