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