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、または Windows の EXPAND.exe を使用して、ダウンロードしたファイルを開くと、次のメッセージが表示されます。
! H:\Code\Backup Monitor\backupsite\tst.CAB: The archive is corrupt
なぜこれが起こっているのか誰にも分かりますか?