用python测试base64编码

用python测试base64编码,python,email,Python,Email,我在使用这条python时遇到了一些问题 def get_msg( message ): if not message.is_multipart(): if "base64" in str(message.get_payload()): return base64.decodestring(str(message.get_payload())) return message.get_payload() ret

我在使用这条python时遇到了一些问题

def get_msg( message ):
    if not message.is_multipart():
            if "base64" in str(message.get_payload()):
                    return base64.decodestring(str(message.get_payload()))
    return message.get_payload()
    return '\n\n'.join( [base64.decodestring(str(m)) for m in message.get_payload()] )
准确地说,第3行和第4行。如果消息不是多部分的,我需要测试它是否是base64编码的。Exchange有时喜欢这样做,当我加密它时会产生问题


正如您看到的,在这之后的不合法位,我可以为附件处理它,但是如何测试base64编码?我试过了。但我不确定我是否做对了

您需要查看
内容传输编码
标题以查看有效负载是否为base64编码,因此:

if message['Content-Transfer-Encoding'] == 'base64':
    # ...
但更简单的解决方案可能是使用

message.get_payload(decode=True)
如果有效负载已编码,则它将对其进行解码,此外,如果有效负载已被引用为pritnable encoded而不是base64,则它也会起作用