ファイル共有をネットワーク共有にプルするプログラムがあります。私はこれをシングルパートとマルチパートの両方の電子メールメッセージで処理しています。これは、ファイル名によるファイル書き込みに失敗しているPDF添付ファイルダウンローダがbase64エンコーディングで動作しない
Content-Type: application/pdf Content-Disposition: attachment; filename="=?utf-8?B?SW52b2ljZShzKS5wZGY=?=" Content-Transfer-Encoding: base64
:
私は最近のように表示されmutlipartを受けています。ここで
は、私はPDFを書いているコードです:
fp = open(os.path.join(path, filename), 'wb') fp.write(part.get_payload(decode=True)) fp.close()
私はその部分が正常に動作していると、それはファイルの書き込みに失敗すると思うが...私はどのようにわからないんだけどそのファイル名を読みやすいテキストに変換します。ここで私は、ファイル名を決定するために使用しているコードは次のとおりです。
filename = part.get_filename() filename_zero, fileext =os.path.splitext(filename)
filename = str(var_seq) + "_" + filename_zero + fileext
私が欠けている何にどれ洞察力は大歓迎です。
Insightは:https://docs.python.org/2/library/email.header([ 'email.header.decode_headerを()']を検討してください。 html#email.header.decode_header)。代わりに:http://stackoverflow.com/questions/7406102/create-sane-safe-filename-from-any-unsafe-stringを考えてください。 –
'email.header.decode_header()'は私が必要としていたものです。ありがとう@ Rob Thanks – AlliDeacon