概要
電子メールの添付ファイルはBase64エンコードされているので,
該当部分を探し出してデコードすると元のファイルを復元できる.
方法
今回使用した環境は以下の通りである.
- Mac OSX 10.7.5 (Lion)
- OpenSSL 1.0.1h 5 (Base64 デコーダーとして使用)
対象は,Thunderbirdが作成したINBOXファイルとする.
1. Mbox形式のファイルから,取り出したい添付ファイルを探して別ファイルへ保存
INBOXを適当なテキストエディタで開く.
ここではvimを使用する.
vim INBOX
日本語のエンコードは,ISO-2022-JPであると考えられるので,必要であれば以下を実行する(vim).
:e ++enc=iso-2022-jp
該当するメールエントリを探す.
見つかったらエントリ中の以下の様な内容の行を探す.
filenname=""の中身が取り出したい添付ファイルであることを確認する.
Content-Disposition: attachment; filename="hogefuga"
Content-Transfer-Encoding: base64
一行空行の後,Base64エンコードされた添付ファイルの内容が固定幅(76?,最終行はこの限りではない)で続いているので,
その部分を別ファイル(例えば,hogefuga.b64)にコピーする.
その際,余計な改行コード(^Mなど)は取り除くこと.
2. opensslコマンドでファイルをデコード
コマンドラインで以下を実行すれば,元ファイルが復元できる.
openssl base64 -d -in hogefuga.b64 -out hogafuga