0
我有一封电子邮件,我正尝试从imaplib下载附件。为什么我使用imaplib损坏的.CAB附件?
我正在使用电子邮件库将消息转换为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
有没有人有任何想法,为什么这可能会发生?
是否 “通过雷鸟下载” 文件提取OK?如果是这样,请确保这两个文件是相同的。既可以将它们装载为字节串并进行比较。或者,如果文件很大,请使用'hashlib.sha512'并验证校验和是否相同。 – 2013-05-12 18:26:19