Python获取电子邮件

Python获取电子邮件,python,email,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() re

当我试图用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)

我明白了。出于某种原因,电子邮件服务器只对身体进行base64编码,我还不知道为什么。但我可以解码这样的信息:

import base64
base64.b64decode(my_wierd_msg_body_goes_here)

如果消息体是编码的,则有一个messger头这样说。如果消息体是编码的,则有一个messger头这样说。