2016/11/29: Win10の場所とか追記しました。

タイトルどおり、メールの保存や添付などができなくなっててそれに対応したりしてました。
初めて調べたことも多かったので備忘録がてらにメモエントリーとしておきます。
普段から触ってる人やSEさんには「今頃何言ってんの(;゜Д゜)」と言われる内容かもしれませんが、ご容赦のほど~。
あくまで初心者レベルの解説メモですのでw


メーラーの類は色々ありますが、そこそこシェアのあるThunderBird君。
しっかりメンテする癖をつけてればさほど問題にもならないんですが、そうはいってもなかなか~って人も多いと思います。
今まで僕が個人的にしてきたThunderBirdの不具合対応の多くは受信が出来なくなった!とかでした。
そのあたりも踏まえつつ、まずは条件と状況の確認からです。

作業環境・症状など

エントリー時のWindowsXP環境でThunderBird8.0です。多分よほどのバージョンアップじゃない限りは「考え方は変えずに」他のバージョンでも対応できると思いますけど。

今回の症状は2つほどありまして

  • ファイルの保存や添付が不可能になりました。
  • 開けないメール(単体)があります。

この2つです。
受信できない~の場合は、サーバー設定情報の確認と受信トレイ[INBOX]が2GB制限に引っかかていないかをまず確認する必要があります。
それで修正できることなら話は早いので、正しい情報を入力するなり、トレイの中身の削減やフォルダ分けを行えば済みます。
今回はこのケースではありませんでしたけどね。
2つのうち後者は探るべき箇所が最初からわかっていたのでまずは保存がらみの部分から解決してくことにしました。

問題を切り分ける為に

さて、そんな問題じゃないんだよ、って場合ですが、じゃあどこがネックになってるのよ…となります。
今回の問題に限った話ではありませんが、確認する順番はざっくりと次のように分けられると思います(環境によっては省ける工程や追加する工程があります)。
一言に繋がらないだ送れないだ言っても、どこがダメなのかわからないじゃないですか、と。

  1. そもそもネットに繋がってる?
    ブラウザを開いてみたりとか、とりあえずネットワークを使ってみる。
  2. FireWallの所為ってことはない?
    WindowsセキュリティのFirewallやインターネットセキュリティ系ソフトウェアの動作状態から確認
  3. 最近何か新しいプログラムをダウンロードしたりインストールした覚えは?
    インストールして干渉しましたってのもよくある話。
  4. 常駐プログラムの所為って事はない?
    構成が変わってないなら考えにくいことではあるけど、止めたら繋がるってことはないかしら。

ここまででとりあえずメーラーの所為なのか、それ以外のアプリケーションの所為なのか、はたまたPC(OS)の所為なのかをまず分けて、メーラーの所為だと判断した場合は次に進む、と。

  1. セーフモードで起動したら受信できたりしない?
    これで正常動作するなら拡張機能を疑えっていうことでしょう。「全てのプログラム」から選択できます。
    (もしくは「ファイル名を指定して実行」で「thunderbird.exe -safe-mode」)
  2. エラーコンソールにエラー内容が出てたりしない?
    「ツール」→「エラーコンソール」にあります。
  3. 受信だけできないの?送信だけできないの?両方できないの?
  4. 特定の動作をした場合に固まる、という場合はその動作の内容は?(○○のボタンをクリックしたとき、など)

特に4がわかってればGoogle先生にお尋ねすれば大体解決方法が出てくるとは思います。

ThunderBird上での動作の確認をする

うっかりしてると、「ThunderBirdが調子悪い><」とか言ってあれやこれややってるうちに新規メールを受信して大事なメールが消えてしまった!とかなります。
サーバーにメッセージを残してないと目も当てられない状況になりそうですので、まずは起動時に自動的に新着メールをチェックしたり、定期的に問い合せるような機能を停止させます。
アカウント設定のサーバ設定からそこらへんの設定ができるので、該当項目のチェックを外してしまいましょう。
これで送受信を意図的に行わない限りは(自分がミスを犯さない限りは)メールがどうのこうのにはなりません。

プロファイルのバックアップ

ThunderBirdではProfileによる管理が行われているので、ThunderBirdの設定による動作不良なのか、それ以外かの切り分けが比較的に簡単だと思います。
「調子悪い?じゃあ再インストールすればいいよ!」ってことを言う人がたま~にいるんですが、それは惚れ薬を作れと言われて毒薬を渡し『結婚は人生の墓場だというから直接墓場に向かうように仕向けた』とイイワケした某下膨れ殿下パ○リ□と大して変わりませんw via 魔夜峰夫先生
手をいれてやればいいだけなんだから、ちょいとがんばってみましょうよ、ってなもんで。
大事なファイルが消えていっても困るでしょうから、まずはProfileのあるディレクトリを丸ごとコピーして任意の場所に保存しておきましょう。いざとなったらまたそっちに戻せばいいんだから!
ちなみに、WindowsXPの場合は「C:\Documents and Settings\<ユーザ名>\Application Data\Thunderbird\<profile folder>」です。その他プロファイルに関しては「プロファイル | 操作方法 | Firefox ヘルプ」をご参照くださいませ。

【追記:2016/11/29】
ちらほら検索から来ている方がいらっしゃるようですので、プロファイルフォルダを開く方法を更新しておきます。
Windows10の場合「C:\Users\<ユーザー名>\AppData\Roaming\Thunderbird\<profile folder>」です。
また、ThunderBirdから直接開く方法もあります。
メニューのヘルプ->トラブルシューティング情報->アプリケーションの基本情報項目の「フォルダを開く」です。

さて、プロファイルフォルダ丸ごとのコピー(という名の保険)を作ったら、次に確認するのは「同じ問題がどのプロファイルでも再現するのか」です。
大抵の場合は、インストールしてそのまま使用していると思うのでプロファイルはdefaultの1つだけです。
そこで、新しいプロファイルを作成し、サーバーの設定を行って送受信してみます(ただし、サーバーにメッセージを残すように設定しておく必要があります)
「ファイル名を指定して実行」→[thunderbird.exe -p] でプロファイルマネージャを開けば、試験用の新しいプロファイルを作成できます。

プロファイルの中身

僕の場合、新しいプロファイルだと普通に動作しました。
つまりは元もとのプロファイルの何かがおかしいっていうことになります。
そんなわけで、プロファイルのフォルダの中身はどうなってるのか、というところを考えた上で問題解決に向けて努力してみます。

ファイルが大量にあると思いますが、ここでは数点に絞ります。
設定一式全部揃って入ってるのでそりゃデータ量も多いってもんですよね。

・<profile>/
 ├・abook.mab ->アドレス帳
 ├・pref.js ->設定ファイル
 └・Mail/ ->メール一式
   ├ [サーバーアドレス] ->それぞれのサーバーのファイル
   └・Local Folders/
             │ ->いわゆる「受信トレイ」。
             | アカウント毎にフォルダを分けていなければ全部ここへ。
             ├・Inbox
             | ->受信したメールそのもの
             | (メール毎のファイルなんてものはありません)
       ├・Drafts ->下書き
       ├・Sent ->送信済み
       ├・Trash ->ゴミ箱
       └・Junk ->迷惑メール

それぞれ拡張子にmsfがつくものはインデックスファイルなので削除しても自動生成します。
よって、「メールのプレビューが変だ」とかいうときはまずmsfファイルを削除します。
間違っても拡張子のないファイルは削除しないようにしましょうね。
直そうとしていた項目の1つである開けないメールに関しては、そのメールを特定するに足る情報(送信日時やタイトルなど)を控えておいた上でInboxを直接エディターで開くという荒業で修復しました。EmEditorだと大容量ファイルサポートがあるので600MB程度でも比較的楽に開けます。容量が大きければ大きいほど開けばパソコンの負荷が酷い事になるので、そこら辺は覚悟の上で臨みましょう。

どうなっていれば正しいのか、を考えてみる

考えてみるというか実際には比較してみるわけですが。
pref.jsを触るにしてもInboxを触るにしても「正常稼動している状態のもの」と「問題を含むもの」で照らし合わせ、おかしい場所を探っていけばいいわけです。(その為にも普通に動くプロファイルを必要としました)
保存や添付ができない件については、トリガーが「WindowsのAPIを呼んだとき」(つまり、どこのファイルを開きますか/どこに保存しますかというダイアログを表示させたとき」でしたので、設定ファイル側だろうと目星をつけてpref.jsを開いて読んでいってみました。案の定、記述のおかしくなっているところが見受けられたのでそこを修正して完了、というわけです。
具体的には、user_pref(“mail.compose.attach.dir”, “○○○○”);の部分がおかしかったわけです。ドライブレターが変わったせいでしょう。
ちなみに、このファイルの内部に記述する際、\はエスケープ処理をする必要があるので、Dのthunderbird_backupというフォルダにしたい場合は、「D:\\thunderbird_backup」と\を重ねる必要があります。

結局どんな問題も…

正しく切り分けられれば、正しく検索できるし、対処法も見えてくるはずです。
やってはならないのは、元に戻せないという状況を作り出すこと(バックアップを取得しないでいきなり編集を始めるなど)
これをやってしまったら正直笑えない。
害を被ったら(巻き込まれたら)管理体制を問いただしたくもなるってものですよ(#-ω-)=3  フンッ
万が一の事態は起こってはならなくても起こってしまうもの。
入念なバックアップも必要ですし、そういうときこそ冷静になりたいものですね。