如何解码 "Content-Transfer-Encoding" 编码不同的电子邮件内容?

How can I decode email contents that are differently "Content-Transfer-Encoding" encoded?

我正在使用 imaplib 阅读电子邮件,发现有些电子邮件内容是 base64 编码的,有些是 7 位的。

我尝试用 'Content-Transfer-Encoding' 值对其进行解码。

但更重要的是,有些消息 object 中有 'Content-Transfer-Encoding' header,而有些消息中有 message.get_payload()[0]。

我可以处理这些情况,但我认为可能还有更多我没有找到的情况。

有没有更好的方法来解码电子邮件内容,无论它们是如何编码的?

谢谢:)

在使用 get_payload() 时,我添加了 decode=True 选项,以便它可以在需要时自动解码。 link

然后,isinstance(content, bytes) 告诉你是否必须单解码。