わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

Gmailでデコードできなかった添付ファイルを,なんとかデコードする

研究室の学生が,Wordファイルを送ってくれたのだと思うのですが,Gmailでおかしな添付ファイルとして表示されていて,復元できません.
こういうときはTMailを使えばいいかなと,gem install tmailとしてインストールし,あれこれスクリプトを書いたものの,失敗しました.
試行錯誤していると,Rubyのみで特別なライブラリを使うことなく,復元できました.手順を残しておきます.
1. Gmailのメールで「▼(右上)」「ヘッダー情報を表示」をクリックすると,メール全文が出てきますので,これを保存します(ファイル名を1.txtとします).
2. テキストエディタで1.txtを開き,MIME encodeされた中で最も大きい箇所をコピーして(あるいは最も大きい箇所を残して前後を削除して),別名で保存します(2.txt).
3. irbを起動し,以下の通り実行します.

>> require 'base64'
>> x = open('2.txt').read
>> y = Base64.decode64(x)
>> open('3.doc', 'w') {|f| f.print y}

3.docをダブルクリックすると,Wordが起動し,内容を見ることができました!