当尝试使用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行某些字符...”) 对于不同的长消息,正文看起来是相同的,知道为什么会这样吗?
答案 0 :(得分:0)
我知道了。由于某种原因,电子邮件服务器只是对base64进行编码,所以我还不知道为什么。但是我可以这样解码消息:
import base64
base64.b64decode(my_wierd_msg_body_goes_here)