我有一封电子邮件,我正在尝试使用imaplib下载附件。
我正在使用电子邮件库将邮件转换为email.message类。这对我正在处理的所有电子邮件都很有效,但是当我获取此附件时,文件看起来完整无缺,并且使用Notepad ++的比较,匹配通过Thunderbird下载的原始cab文件。
这是我正在使用的代码示例。
fileContents = message.get_payload()[1].get_payload(decode=True) #
fileName = message.get_payload()[1].get_filename()
with open(fileName, 'w') as f:
f.write(fileContents)
正如我所说,文件内容看起来与通过其他客户端下载的原始文件相同。它具有相同的尺寸,精确。但是,当我在WinRar,7zip或使用Window的EXPAND.exe中打开下载的文件时,它会显示以下消息。
! H:\Code\Backup Monitor\backupsite\tst.CAB: The archive is corrupt
有谁知道为什么会这样?
答案 0 :(得分:0)
我修复了自己的问题。我也需要以二进制模式打开文件。
所以
with open(fileName, 'w') as f:
变为
with open(fileName, 'wb') as f: