Thunderbirdの消えたメールを復活させるでござるの巻

昨日、ある人に送ったメールを見ようとしたのですが、どういう訳かThunderbirdの送信済みメールで、一ヶ月前のものより前のメールが消えていました。メールファイルの中身を見ると、メールは存在していたので、インデックスファイルがぶっ壊れたかな?とおもってインデックスファイル削除して再構築してみたけど効果なし。
おかしいなあ、と思っていろいろ調べていたら、Thunderbirdのすべての(そのアカウントの)過去のメールが消えていたことを発見。ビックリして設定を調べたところ、サーバの古いメールを削除するつもりで、クライアントのメールを1ヶ月より前のメールを削除する設定にしていたことを発見。非常にショックを受けました。
けど、なんでメールファイルには残っているんだ、容量減ってないじゃん、意味ないじゃん、と思ってもっと調べてみると、どうやら「最適化」をするまでの間はメールファイルに残っているとのこと。じゃあ、なんでインデックスを作り直しても見えないか(削除する設定を解除した後でも)、と言うと、「X-Mozilla-Status:」というヘッダに現在の状況(削除済み、返信済み、転送済みなど)が格納されていて、それを見ている模様。つまり、このヘッダを書き直さない限り、復活しないと言うことがわかりました。最適化しなくてよかったー。
参照: Mozilla Thunderbird のメールフォルダファイルに含まれる X-Mozilla-Status: フィールドの値について:tamcat(木管猫)の備忘録:So-netブログ
X-Mozilla-Statusは4桁の16進数、つまり16bitあるのですがですが、削除したかどうかを表すのは下から3bit目。だからたとえば「0008」→「0000」、「001a」→「0012」といった具合で修正をかけてあげればいい。ちなみに、フラグの意味はこちらなどで。
そこで、Perlで(ほんとはPythonで!ってやりたかったけど、まだ不慣れでさすがに怖いので、もっとも慣れているPerlで)修正するプログラムを書いて実行して、その後インデックスファイルを削除したら、きちんと復活されました。
検索すると、たまに困っている人が(国内外)いるみたいなので、メールを復活させるアドオンとかあればいいのに、と思ったけどないのでしょうか。ちょっと探した漢字ではわからなかったです。また、作ってもいいかも、と思っています。クライアントアプリケーションでもいいかもしれないけど。そっちの方が簡単だし。
で、復活させた際にわかったこととして、ドラフトは、保存するたびに新しいメールとして保存され、古い方が削除フラグが立った状態になる、と言うことで、ドラフトに大量の書きかけメールが復活してしまい、ちょっと困惑しました。ドラフトのフォルダだけは、こまめに最適化しておいた方がよさそう。それ以外は怖いから、きちんとバックアップをした後に最適化しましょう。