我不太了解“电子邮件多部分邮件对象”的意思。您的意思是属于
email.message.Message该类的对象吗?
如果这就是您的意思,那很简单。在多部分消息上,该
get_payload方法返回消息部分的列表(每个消息部分本身都是
Message对象)。您可以遍历这些部分并检查它们的属性:例如,该
get_content_type方法返回该部分的MIME类型,该
get_filename方法返回该部分的文件名(如果消息中指定了任何文件名)。然后,当您找到正确的消息部分时,您可以调用
get_payload(depre=True)以获取解码后的内容。
>>> import email>>> msg = email.message_from_file(open('message.txt'))>>> len(msg.get_payload())2>>> attachment = msg.get_payload()[1]>>> attachment.get_content_type()'image/png'>>> open('attachment.png', 'wb').write(attachment.get_payload(depre=True))
如果要以编程方式从收到的电子邮件中提取附件,则可能要采取预防措施来防范病毒和特洛伊木马。特别是,您可能只应提取其MIME类型是安全的附件,并且可能要选择自己的文件名,或者至少要清理的输出
get_filename。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)