我有一个IMAP电子邮件部分,看起来像这样:
(b'TEXT', b'HTML', (b'CHARSET', b'KOI8-R'), None, None, b'BASE64', 3304, 42, None, None, None)
我正在使用 IMAPClient 解析电子邮件,但在尝试将电子邮件正文解码为人类可读字符时遇到问题。我的代码如下所示:
bytes = imap_server.fetch(msgid, "BODY['1']")[msgid][b'BODY[1]']
rs = base64.b64decode(bytes)
rs = rs.decode('KOI8-R')
结果,我得到了这样的abracadabra:
ЪьЪЮJFIFHHЪАюExifMM*
bytes
变量的值如下所示:
b'/9j/4AAQSkZJRgABAQEASABIAAD/4QTARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAA...
知道我做错了什么吗?
顺便说一句,我在源代码文件的开头# -*- coding: utf-8 -*-
。
您可能抓取了错误的部分,或者服务器错误地解析了消息。 这可能是 JPEG 图像。 它解码为:
\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x01\x00H\x00H\x00\x00\x00\xff\xe1\x04\xc0Exif...
JFIF和Exif表示JPEG图像。