※2017年9月19日追記
「CCleaner」にマルウェア混入というニュースがありました。
http://www.itmedia.co.jp/enterprise/articles/1709/19/news051.html
「CCleaner v5.33.6162」には問題がありますので、「v5.34」以降にアップデートするようにしてください。
※以下は8月22日に書いた内容です。
Windows10で、CCleanerとThunderbirdを使っている人は気をつけてください。
月曜日の朝から、とんでもないことが起きてしまいました。
朝パソコンをつけて、メールをチェックするためにThunderbirdを開くと、こんな画面が出るではありませんか。
いつも表示されるメールの一覧は見当たらず、アカウント設定の初期画面が表示されてしまいます。
Thunderbirdで管理しているのは、仕事のメールが中心なので、月曜日の朝にこんなトラブルが起きるのは非常に困ります。
焦りながらも原因を考えてみると、思い当たることが1つありました。それがCCleanerです。
この記事の内容
Thunderbirdのアカウント情報が消えた原因
今回Thunderbirdが初期化された原因は、「prefs.js」というファイルが上書きされたことです。「prefs.js」は、Thunderbirdのアカウント情報を記録するファイル。
「prefs.js」の場所は通常、C:\Users\(ユーザー名)\AppData\Roaming\Thunderbird\Profiles\ にある「英数字.default」というフォルダのなかです。
この「prefs.js」が上書きされたのは、CCleanerというソフトを使ったのが原因でした。
CCleanerでのクリーンアップ
前日の夜、パソコンを閉じる前にファイルの整理をしようと、CCleanerを使ってファイルの一括削除をしたのです。
CCleanerは、Windowsの不要ファイルなどを整理してくれる便利なソフト。これまでなんども使っていたのですが、トラブルが起きたことはなかったので油断していました。
だけど今回はCCleanerのバージョンアップがあったので、CCleanerの設定がこれまでと変わっていたのです。
CCleanerのバージョンアップ時にはチェック項目に注意!
今回バージョンアップした最新版は「CCleaner v5.33.6162」(この記事を書いた時点で)。
このバージョンになってなにが変わったかというと、各アプリケーションの「保存場所」という項目に、デフォルトでチェックが入っているのです。
こんな重要な項目にしれっとチェックが入っているとは!
この「保存場所」にチェックが入った状態で、クリーンアップを開始してしまうと、今回のようにアカウント情報が消されてしまうことになります。
CCleanerを使う場合は、このようなことも起こりますので、十分注意するようにしてください。
Thunderbirdのアカウント情報が消えたことへの対処法
それでは、このように「prefs.js」が破損してしまってThunderbirdのアカウント情報が初期化されてしまった場合の対処方法を紹介します。下の1~3の順番で、面倒になっていきます。
僕の場合はバックアップをとっておらず、2の方法でも復元できなかったので、結局3の方法で手動でアカウントを設定し直すことでなんとか対処できました。それでは紹介していきます。
1、prefs.jsのバックアップから復元する
バックアップをとっていることが条件なのですが、一番簡単なのはバックアップから「prefs.js」を復元することです。バックアップに保存されている「prefs.js」を、「英数字.default」フォルダのなかの「prefs.js」に上書きすればいいだけです。
僕の場合は、そもそもバックアップをとっていなかったので、この方法は使えませんでした。やはりバックアップは大切ですね。Windows10では「以前のバージョンの復元」という機能を使えますので、これを機会に有効化しておきます。
2,Invalidprefs.jsを参考にしてprefs.jsを修正する
ここから先は、やり直しができるように「英数字.default」フォルダをどこかにコピーしてバックアップをとっておいたほうがいいと思います。
2番目の方法は、Invalidprefs.jsを参考にしてprefs.jsを修正するという方法。
この方法は、こちらのサイトで紹介されていた方法です。
http://fio.hatenablog.com/entry/2017/07/24/195254
「prefs.js」があるフォルダには「Invalidprefs.js」というファイルも存在します。
この「Invalidprefs.js」の内容は、もともとの「prefs.js」とほとんど同じ内容のようです。
なので、「Invalidprefs.js」に記述されている「user_pref(“mail …」以下をコピーして、「prefs.js」の該当する部分に貼り付けて保存。そしてThunderbirdを再起動すると、元通りになっているようです。
僕はこの方法では復元できませんでした。おそらく「””」が閉じていないというミスがあったのだと思います。
記事公開後にコメントで情報をいただきましたが、文字列の「””」が閉じていないという場合があるようです。
テキストエディタでファイルを開くときはUTF-8を指定して開くようにして、「””」が閉じていない場合は閉じるようにしてください。
※追記 コメントで情報提供をいただきました。
この方法では、日本語コードの問題で文字列の「””」が閉じていないということが起こる場合があるようです。
もしうまくいかない場合は、このへんに気をつけてください。
※追記 コメントで情報提供をいただきました。
「Invalidprefs.js」のファイル自体をコピーして「prefs.js」に名前変更するという方法でも対応できるようです。
また、テキストエディタでファイルを開くときはUTF-8を指定して開くようにしてください。
3,手動でアカウントの設定をし直す
最終手段は、手動でアカウントの設定をし直すことです。メールのデータ自体は残っているので、アカウントの設定が元通りになれば、以前の状態に戻すことができます。
僕の場合は、Thunderbirdに6つのメールアカウントを設定していたので少し複雑で面倒でしたが、結局はこの方法でなんとか復元することができました。
このやり方が正しいかどうか分かりませんが、僕が実際に復元したやり方を紹介すると、まず、サーバー情報を正しく入力し、その後、サーバー設定では、新着メッセージをダウンロードしないように設定します。
そして「メッセージの保存先」では、「Mail」フォルダのなかの、そのアカウントのメールが保存されているフォルダを選択します。(どのフォルダがどのアカウントに対応しているか分かりにくい場合は、各フォルダのなかにある「popstate.dat」というファイルをエディタで開けば、アカウント情報が書いてあります)
この設定をしてThunderbirdを再起動すると、メールは元通りになっていました。あとは、すべてのアカウントで同じことを繰り返すだけです。
おわりに
メールソフトが初期化されてしまうという今回のトラブルはかなり焦りました。
以前、Thunderbirdのデータを古いパソコンから新しいパソコンに移行したことなどがあったので、なんとか冷静に対処できましたが、そういうことが分からなければかなり大変だったと思います。
今回の教訓は、「バックアップをとるようにする」ということと、「CCleanerを使うときは気をつける」ということ。
でも、今回の件をきっかけに、メールの管理をGmailで一元化するとか、仕組み自体を変えてもいいのかなあとも思っています。そういうことについてもこれから考えていきたいと思います。
以上、CCleanerが原因でThunderbirdのデータが消えた際の対処法についてでした。
ありがとうございます。
同じ現象で、あせっています。
試してみます。
シェアありがとうございます。
2番目の方法(Invalidprefs.jsを参考にしてprefs.jsを修正)がうまくいかなかったので、
内容をチェックしたら、日本語コードの問題で、文字列の””が閉じていない箇所があったため
修正したところ、うまく読み込めるようになりました。
コメントありがとうございます!
お役に立てたようでよかったです。
また、情報提供ありがとうございます。
記事内容にすこし追記させていただきました。
こちらの情報で助かりました。
Invalidprefs.jsのmail関連の行をprefs.jsにコピーしたら一発でOKでした。特に手直しは必要ありませんでした。
所で、私が使ったccleanerは5.35なのですが、ThunderBirdの設定項目に保存場所というのはありません。それでも同じ現象が起きてしまいました。
コメントありがとうございます!
お役に立てて良かったです。
トラブルが起きて以来CCleanerは使っていないのですが、v5.35ではそういうことになっているんですね。
CCleaner v5.35.6210 で同じ現象が起きてしまいました。
貴重な情報ありがとうございました。助かりました。
私の場合は2番目の方法(Invalidprefs.jsを参考にしてprefs.jsを修正)を参考して直りました。自分の場合、内容のコピーではなく、Invalidprefs.js自体をコピーしてprefs.jsに名前変更してから、ともんさんからの情報で、日本語文字列の””が閉じていない箇所を修正していました。
一つ補足ですが、Shift-JISで開くと、日本語部分が文字化けになってしまうので、テキストエディタでUTF-8を指定して開く必要があります。その後、日本語含む行を一つ一つを探して、””が閉じていなければ閉じるようにしたら無事復旧できました。
これから日々バックアップするようにします。
コメントありがとうございます!
お役に立てて良かったです。
なるほど、「Invalidprefs.js」の名前自体を変更してもいいんですね。
文字コードについても情報ありがとうございます。
記事に加筆させていただきます。
少し発見経緯を補足しますと、Invalidprefs.js と 問題発生後自動的に作成された prefs.js の中身を比較したら、「user_pref(“mail …」より上のヘッダ部分が一緒の内容だったので、それでしたらコピーしてもいけるのではと思い、コピーして名前変更することにしてみました。
こちらの情報が大変助かりました。
2番目の方法で復旧しました。
コメントありがとうございます!
お役に立てて良かったです(^^)
こちらのやり方で復旧できました。大変感謝いたします。
コメントありがとうございます!
お役に立てて良かったです(^^)
おかげさまで3番目の方法で大量のメールを復旧できました。
ありがとうございます。
一点だけ、新たな受信メールを復旧したフォルダーへ振り分ける
フィルタ設定だけは再度設定が必要でした。他は大丈夫そうです。
Invalidprefs.jsを参考にしてprefs.jsを修正する
文字列の「””」が閉じる
これで起動できました。
あとは、Thunderbirdの各アカウント設定で文字化けを直す
これで以前の状態に復旧できました。
フィルターは、残ってたので手動で適用してきちんとフォルダーへ割り振られてました。
文字化け関連で何もなければ大丈夫なはず?
ものすごく助かりました。
ありがとうございました!
久々にCleaner使った後にThunderbird開いて焦りました。
バックアップを取っていたので助かりました。 ありがとうございました。
昨日CCleanerを使って今朝開いたらアカウント設定が消えていて焦りました。
こちらのサイトの2の方法により復旧することができました。
大変助かりました。どうもありがとうございます。