Thunderbirdのメール振り分けルールが壊れたときの対処方法(の一例)
- 環境
- WindowsXP SP3
- Thunderbird thunderbird 2.0.0.18
デブサミなど、セミナや展示会に参加していると、結構な頻度で売り込みのメールが来たり、他にも頼んでもいないメルマガが入ってきたりしてしまって、そういうメールってうっとおしいですよね。
一件ずつお願いしてメール配信停止とか面倒ですし、停止をお願いしても、いつまでたっても配信停止しないメルマガとかありますよね。
というわけで私はThunderbird(以下TB)のメッセージフィルタをつかって、不要なメールを明示的にあるフォルダへ振り分けていました。迷惑メールフィルタは使っていません。
受信トレイにいらないメールが目立つようになってきたので、メッセージフィルタを使って整理していたところ、メッセージフィルタが更新できなくなってしまいました。その時はメッセージフィルタを追加して、その追加したフィルタをその場で受信トレイに適用して、、、ということを繰り返していました。
整理を終えて、違う仕事に取り掛かるためにTBを閉じ、再びTBを開いてメッセージフィルタを確認したところ、追加したフィルタが消えて元に戻っていました。
(フィルタを追加して、TBを再起動すると変更が消えて元に戻ってしまった。)
おかしいと思い、フィルタを再度追加して、TBを再起動すると、また元に戻ってしまう。どうも削除しても戻るので、追加できないだけではなく、更新がまったくできない状態になってしまったようでした。
エラーコンソールには次のように表示されていました。
エラー: uncaught exception: [Exception... "Component returned failure code: 0x8052ffff [nsIMsgFilterList.saveToDefaultFile]" nsresult: "0x8052ffff (
)" location: "JS frame :: chrome://messenger/content/FilterListDialog.js :: onFilterClose :: line 396" data: no]
ぐーぐるで調べてみると、つぎのような情報にHit。
http://forums.mozillazine.org/viewtopic.php?f=31&p=4840105
これを見て、つぎのように試してみました。
なお、わたしは実際にやりませんでしたが、本来であれば事前にメールデータをバックアップしてから行ったほうがいいです。メールデータを失うかもしれませんので。
行った操作
- TBを閉じて、メールデータのフォルダを開く。
- メールデータのフォルダは、デフォルトでは以下にあります。
- C\Documents&Settings\User名\Application Data\Thunderbird\profiles\任意の文字数字.default\Mail\Local Folders
- メールデータのフォルダは、デフォルトでは以下にあります。
- msgFilterRules.datとtmprules.datを別フォルダに退避
- TBを起動
- メッセージフィルタを開く。登録は空なので、適当に振り分けルールを作る。
- メッセージフィルタとTBを閉じる
- 元のmsgFilterRules.datで上書きする
- TBを起動。メッセージフィルタを開いて、新しいルールを追加したら直った。
で、気づいたのですが、どうも、tmprules.datが悪さをしているようです。
tmprules.datとmsgFilterRules.datのDiffをとったら、中身は同一でした。
また、復旧後にtmprules.datが存在していませんでした。
tmp・・・一時ファイルかな?これがあると、書き込みができなくなるのかも。
tmprules.datが悪いかどうかを確かめるために、ためしに、tmprules.datという中身が空っぽのファイルを作ってからTBを起動してみたら、再現した。
ということで、何かの拍子にtmprules.datができてしまうとこのエラーになってしまい、さらにメッセージフィルタが書き込めなくなるみたいです。
そのtmprules.datを_tmprulues.datにリネームして起動すると、現象が出なくなりました。そして、_tmprules.dat.msfというファイルが起動時に作られた。(謎)
これ以上は調べる気は無いですが、どうやらtmprules.datというファイルをリネームすれば、復旧できそうな感じですね。。。メールデータのバックアップ取らなかったので、追試はできていません。残念。