在python中解码消息头和主体

时间:2019-02-11 11:06:18

标签: python python-3.x

我正在尝试使用Python编写一个简单的邮件客户端,该客户端可以发送和读取gmail收件箱中的邮件。发送部分效果很好,但阅读部分却一直给我不好的结果。

这是python代码:

import imaplib
import base64
email_user = '<gmail_address>'
email_pass = '<password>'

M = imaplib.IMAP4_SSL('imap.gmail.com', 993)
M.login(email_user, email_pass)
M.select('inbox')

typ, message_numbers = M.search(None, 'ALL')  # change variable name, and use new name in for loop


typ, data = M.fetch(b'1', '(RFC822)')
data1 = base64.b64decode(data[0][1])
print('Message \n%s' %data1)
M.close()
M.logout()

结果是:

Message 
b'\r\xe9b\xbd\xea\xdeu:1\xcaf\xa2\x97M;\x82f\xa2\x95\xca&E\xe7\x1e\x8a\xf7\x9do-\xb4\xd3f\xb5\xef\xdd\x1a\xd7Nt\xd3M4\xc2+aH\xc4\xcf\x89\xdc\xb5\xea\xfe\x9c\xb2\x9d\xb8\xd3\xae\xbd\xf2\x98\xdd2\x89\xf5\xd4W\x9b\xdbM}\xd3nv\xd7\x9d<\xd3C\xd2Mt^q\xe8\xafy\xd6\xf2\xdbM6i\xd7\xfc\xdbgp\x8a\xd8R13\xe2w\x8d\xa6\xaf^\xbb\xefo{\xf3\n\xdb\xeb}y\xe3\xdf<\xdb}\xf9\xdfM\x8c\xa2}u\x15\xe6\xf6\xd3_t\xdb\x9d\xb5\xe7O4\xd0\xf4\x93\x01\x10\x92y\xa9b\xd5\xaa\xecj\xc8Z\xdb\x9e\xad\xd7\x9e=\xf3\xcd\xb7\xdf\x97/\x9e\x89\xdev\n(\x82W\x9c\xa2k'

我感谢任何修改后的代码和提示。我也是python的新手,所以请保持您的描述尽可能简单...

1 个答案:

答案 0 :(得分:0)

您在data[0][1]中收到的邮件不是base64

您想做类似的事情

from email import message_from_bytes
...
msg = message_from_bytes(data[0][1])

然后操作msg