Python获取电子邮件

时间:2019-06-09 03:35:47

标签: 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行某些字符...”) 对于不同的长消息,正文看起来是相同的,知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

我知道了。由于某种原因,电子邮件服务器只是对base64进行编码,所以我还不知道为什么。但是我可以这样解码消息:

import base64
base64.b64decode(my_wierd_msg_body_goes_here)