base64のデコード
さて、化けてしまって読めないメールはどうやって読みましょう?とりあえず、手元にあるツールを利用しましょう。
仮に、化けた本文が次のようなものだったとしましょう。
5paH5a2X5YyW44GR44Gu44OG44K544OICgotLSAKSEFTRUdBV0EgWW9zdWtlCg==
これを見た瞬間、末尾に = がついていること、それ以外は A-Za-z0-9 しか使われていないことから base64 であるとヘッダを見なくとも判断できます。
まずはメモ帳を開き、次の6行を入力します。
Content-Type: application/octet-stream; name="file.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="file.txt"
6行目は改行のみです。忘れないように入れてください。
7行目以降に base64 でエンコードされている文字列を貼り付けます。
Content-Type: application/octet-stream; name="file.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="file.txt" 5paH5a2X5YyW44GR44Gu44OG44K544OICgotLSAKSEFTRUdBV0EgWW9zdWtlCg==
そして、名前をつけて保存で"適当なファイル名.eml"として保存します。拡張子 eml のファイルは、Outlook Express で開くことができます。Outlook Express で開くと、ファイル"file.txt"が添付されてる本文なしのメールとなっていますので、添付ファイルを取り出して、適当なエディタ*1で開いてやれば
文字化けのテスト -- HASEGAWA Yosuke
と、無事にもとのメールを取り出すことができました。
もちろん、最初から文字コードが UTF-8 だとわかっている場合には、Content-Type: text/plain; charset=utf-8 とすることにより、添付ファイルではなく直接 Outlook Express 内で読むこともできます。
*1:メモ帳だと改行せずに1行になっています。