如何用Python的mail-parser提取MSG附件并保存为有效文件?
解决方法
直接使用Python标准库中的base64模块对附件的base64编码载荷进行解码,然后以二进制模式写入文件即可,无需依赖win32com模块。
修改后的完整代码如下:
import mailparser import base64 mail = mailparser.parse_from_file_msg('example.msg') attachments = mail.attachments for att in attachments: file_name = att['filename'] encoded_payload = att['payload'] # 解码base64编码的载荷 decoded_payload = base64.b64decode(encoded_payload) # 以二进制写入模式保存文件 with open(file_name, 'wb') as f: f.write(decoded_payload)
说明
base64.b64decode()会自动处理编码内容中可能存在的换行符等格式问题,无需额外处理- 使用
wb模式写入文件是因为附件内容是二进制数据(比如图片、文档等),确保文件内容完整无损
内容的提问来源于stack exchange,提问作者martink
相关产品推荐
相关产品推荐

