うまく表示できない添付ファイルが読めるかもしれない方法

メールの文字化けや添付されたテキストファイルの文字化け。たいていは文字コード云々で解決しますが、添付ファイルだけが文字化けして意味不明な記号列になっている、ファイルが破損しているようで読めない、という場合もあります。そんな場合でもテキスト系のファイルくらいならひょっとすると読めるかもしれないというお話。
メールにファイルを添付するときには、画像でも何でも決まった型式でテキストに変換して送信されています。今回対象とするのはMIME Base64エンコードされていて、なんだかデータが乱れてしまっている場合。
やることは単純で、メールのソースを手でデコードしてあげます。手順はこのあたりを参照。
まずはメーラーでメールのソースを表示。例えばThunderbirdだと表示ーメッセージのソースと選択すれば表示されます。ずるずるとスクロールしていくと、Content-Transfer-Encoding: base64とかfilenameなんとかの文字列の後に意味不明な記号列がずらずらと並んでいる部分があると思うので、そいつを適当なテキストファイルにコピペします。データが乱れてしまうのは基本的にファイルが複数あるときだと思うので、これは複数回、場合によってはファイルの数の2倍くらいの回数やる羽目になるかもしれません。
次に、こいつをデコードします。Perlでできるみたいです。Perlは使ったことがないのですが、先程のリンク先のままやったらできました。例えばhoge_mime.txtに保存したとすると、テキストファイルとして吐き出す場合は

perl -MMIME::Base64 -ne print decode_base64($_) hoge_mime.txt > hoge_mime_result.txt

テキスト系のファイル(プログラムのソース他)ならこれで読めるはず。先日出くわしたメールではテキスト系ゆえ中身でわかったのですが、メールのソースに書かれたファイル名と中身との対応が崩れてしまっていました。
対応が乱れていない場合にはjpeg等のバイナリファイルも復元できるでしょうが、対応が崩れてファイルが砕け散ったりしている場合には一筋縄ではいかないかもしれません。
あと、ファイルの数が多いときにはめんどくさいです。MIME Base64部分の切り出しから変換までスクリプトを書いてしまった方がいいかも。そこまでして復元する前に再送をお願いした方が手っ取り早いですが…