def decode(message_part):
content_transfer_encoding = message_part.part["Content-Transfer-Encoding"]
content_type = message_part.part["Content-Type"]
payload = message_part.part.get_payload()
if content_transfer_encoding == "base64":
payload = base64.b64decode(payload)
elif content_transfer_encoding == "quoted-printable":
payload = quopri.decodestring(payload)
# payload is already properly decoded, usually happens in plain text emails
if isinstance(payload, str):
return payload
# payload is text, decode with proper charset
if is_text(content_type):
return payload.decode(get_charset(content_type))
# payload is probably binary, don't do anything else
return payload
评论列表
文章目录