katsu さんが書きました:
先ほど、送信したはずのメールが見当たらず、再構築・最適化・msfの削除を行ったのですが、復元されませんでした。
しかしよく見ると、受信トレイから他のフォルダへ移動したはずのメールが元の受信トレイに戻っていました。削除したはずのメールも戻っています。
なおかつ一度受信したメールもまた受信するなど、3時間ほど時間が戻ったような症状で悩んでいます。
POP3だとすると、メールフォルダーの中のメールデータに関しては、非常にシンプルな構成なので、何をやればどうなるかは、非常にはっきりしています。
(1) あるメールフォルダーXXXにおいて、ある一つのメールデータは、
(1-1) "From - タイムスタンプ"という行(Unix Mbox Formatファイルのセパレーター)
(1-2) Tbが追加したヘッダー(X-Mozilla-Status:など)
(1-3) POP3サーバーからダウンロードしたメールデータ全部
というようになっていて、これが複数あるだけ。
(2) XXX.msfファイルというのは、これらのメールデータにアクセスするために、各メールデータのXXXというファイル内のオフセットを持っているだけ。
(3) XXXからメールの削除(=Move to Trash)・他への移動(=Move to Target)は、
(3-1) メールをTrashあるいはTargetにコピー
(3-2) XXXの中のメールデータの、(1-2) のうちのX-Mozilla-Status:に「削除済み」のフラッグを立てるだけ、
(4) XXXの再構築は、
(4-1) XXX.msfの中身を一旦クリアーし、
(4-2) XXXの中をスキャンし直して、各メールデータのオフセット情報を、XXX.msfの中に書き直す、
(5) XXXの最適化は、
(5-1) XXXの中の「削除済み」のフラッグが無いメールについてのみ、YYYというファイルにコピーし、
(5-2) YYYを元に、「再構築」を行って、YYY.msfをつくり、
(5-3) XXX/XXXを削除して、YYY/YYY.msfをXXX/XXX.msfにリネーム
ということをしているだけです。
一度「削除済み」のフラッグがついたメールに関しては、手動で無理矢理「削除済み」フラッグをリセットして再構築、以外に、もう一度見る手段はありませんから、二度と見ることはできません。
従って、(A) XXXから削除されたはずのメールが復活、は、
(A-1) 削除の操作で、スレッドペインの表示から消えたが、「削除済み」のフラッグがXXXの中のメールデータには書かれていなくて、メールデータとしてはまだ消された状態ではなくて、再構築によって、再び表示された、
(A-2) 削除の操作で、「削除済み」のフラッグがXXXの中のメールデータにちゃんと書かれたあと、誰かが、まだ「削除済み」のフラッグが書いていない時点のバックアップで、XXXというファイルを上書きし、再構築、
以外にはあり得ません。
(B) 「一度受信したメールをもう一度受信」というのは、「サーバーから消さない」設定の時の設計・実装は、どのメーラーも基本的に同じですが、popstate.datというファイルに、各メールにサーバーがつけるUIDLというユニークな識別氏を保存しておき、次回のメールチェックではそのメールのダウンロードをしない、というだけですから、popstate.datファイルを消したり、popstate.datを古いバックアップで上書きすれば、当然起こることになります。、
で、これを利用して、popstae.datを消して受信、だけで、サーバーに残したものを全部もう一度ダウンロードし直し、ができる、と。
「復元されませんでした」と書いていますが、普通、メールが見つからないというようなケースで、XXX.msfを消してみたり最適化してみたり再構築してみたりしたことを「復元」と呼ぶことは、まずないと思います。
おっしゃるような状態になる前に、一体何をしたのでしょうか?
(C)「送信メールのコピーが見つからない」も含め、どの現象も、「古いバックアップで上書きした」のならば、全て、非常に簡単に明快に説明がつくものです。
(A-1) の現象になるケースがあることはあるのですが、もしそうならば、同時に、(B)も(C)も起こることは、まず考えられません。
> 送信済みトレイに保存するようにしておりました。
POP3アカウント、ということですから、最低限一つのPOP3アカウントとローカルフォルダというアカウントがあるはずです。
どのアカウントの「送信済みトレイ」に保存する設定にしてあるのですか。
その送信済みフォルダには、手動でメールをコピーできますか?
以前の送信では、必ずその送信済みトレイにコピーされていたのが、ある日突然、あるメールから全て、あるいは、あるいくつかの送信メールだけが、コピーされない、ということですか?
それとも、Thunderbirdを使い始めて三時間くらいの初めての送信メールで、それ以降は送信していない?
> > メッセージフィルタで、何か関係しそうな設定はされていませんか?
>いくつかフィルタ設定はしていますが、特に今回に関係はなさそうです。
(A-1) の現象になるケース、というのが、実はこれなんですけどね。
ヘッダーだけ、あるいは、メッセージのサイズ制限をしている時に、受信時のメッセージフィルターでフォルダーの移動を行っていると、移動後に「削除済み」フラッグがかかれない、移動先のフォルダーで「全文をダウンロード」を行うと、エラーがでる、というような問題。
このあたりだと、再構築で復活、フィルターで移動したのに復活、になるし、「全文をダウンロード」でダウンロードした後、そのUIDLについての「部分的にダウンロード済み」の状態が「全文をダウンロード済み」にならず「まだダウンロードしていない」状態になってしまう、ということは場合によっては起こるのかもしれない。
これでは、(C)「送信メールのコピーが見つからない」の説明は一切つかないが、POP3アカウントの送信済みフォルダだと思い込んでいたが実際の設定はローカルフォルダになっていた、という落ちで、三時間が、使い始めて三時間、ならば、立派に当てはまる。