Python IMAP - 使用 BASE64 编码和 KOI8-R 字符集解码文本



我有一个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图像。

最新更新