web-dev-qa-db-ja.com

メール本文(base64としてエンコード)から添付ファイルを抽出するにはどうすればよいですか?

次のように、メールの本文にエンコードされて届いたときに、メールから添付ファイルを抽出するにはどうすればよいですか。

------ =_NEXTPART_FORMSCAPE_MAIL_message101122101615
Content-Type: application/octet-stream; name="MyFile_hasalongish
     filename_22-NOV-2010.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MyFile_hasalongishfilename_22-NOV-2010.pdf"
Content-Description: MyFile_hasalongishfilename_22-NOV-2010.pdf

JVBEDi0xLjMKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0
ZFRGVSdsfSDF43N0cmVhbQp4nJ0b23IVN/LdXzG1D7vnbOUMo9tISiWpBduAN2CMbZJN
[...]
OUIwOEYxRDcyRjkwRDAxRUU1QzBDMjhEM0Y+XQo+PgpzdGFydHhyZWYKMTMwNDQKJSVF
T0YK
------ =_NEXTPART_FORMSCAPE_MAIL_message101122101615--
13
DrStalker

メールを拡張子.uueのテキストファイルに保存し、デアーカイバで添付ファイルを抽出します。

2
Rob Kam

Base64でエンコードされたテキストのみを新しいテキストファイルにコピーしますfoo.txt

base64 --decode foo.txt > bar.pdf

削除する必要のある最後に余分なビットがあるbase64ストリームをデコードしました。次のようになりました:--=_59494bda030d4629113a60ff13935d81--。削除する前に、エラーが発生しました:Invalid character in input stream.削除した後、デコードエラーはなく、正常に開きました。

17
Simon Woodside

Base64デコーダーを使用してファイルを復元し、エンコードされた添付ファイルである実際のテキストのみをコピーしました。周囲のヘッダー/フッターのものはコピーしませんでした。

1
DrStalker