― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 7 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2016年11月29日(火) 21:58 
こんばんは はじめまして
既出でしたら申し訳ございません。
バージョンは、「45.5.0」
OSは、win7 64ビットです。
メールアカウントを複数使用していますが そのうちの一つのアカウントの中で以前から1つのフォルダーの振り分け機能がうまく動いていなかったのですが気にせずに使っておりました。
そして 2・3日メールの受信をしていなくて 先ほどメールを受信しました。迷惑メールも含めて200通くらいのメールが届いていたように思います。
メールを受信中に該当フォルダーに入るはずのメールが届いた時に「フォルダーを修復してください。」とメッセージが出たので受信終了後に該当フォルダーのプロパティから「フォルダーの修復」をしました。
その時に反応が悪かったので何度かクリックしました。
すると該当フォルダーに2000通以上の未読メールがあると表示が出たので すべてのメールを選択してゴミ箱に移動させました。
その後「受信フォルダー」(振り分け対象ではないメールが入っている)を見たところ2014年から今日までのメールがすべて消えていました。
他の振り分け対象のフォルダーは、全てのメールが消えてしまいました。(これらのメールは、戻らなくても良いメールです。)
ネットで検索して「ImportExportTools」と「Recover deleted message」を入れて試してみましたがメールは消えたままです。
「Inbox」は、615,866KB 「Inbox.msf」は、491KBあるのでメールが残っていると思うのですが受信トレイには、2014年以降のメールが表示されません。
「終了時にゴミ箱を空にする」にチェックを入れていて 何度も再起動しているのでゴミ箱は、空の状態です。
どうにか 受信フォルダーの振り分け対象出なかったメールを復活させる方法がありますでしょうか?
お分かりの方がおられましたらアドバイスいただけたら嬉しいです。
どうぞ 宜しくお願いいたします。

_________________
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2016年11月30日(水) 00:11 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
karin2016 さんが書きました:
その後「受信フォルダー」(振り分け対象ではないメールが入っている)を見たところ2014年から今日までのメールがすべて消えていました。
「Inbox」は、615,866KB 「Inbox.msf」は、491KBあるのでメールが残っていると思うのですが受信トレイには、2014年以降のメールが表示されません。
ネットで検索して「ImportExportTools」と「Recover deleted message」を入れて試してみましたがメールは消えたままです。

「Recover deleted message」で試した中に「受信トレイ」(Inbox/Inbox.msf)が含まれるのか含まれないのか不明ですし、POP3かIMAPかも不明ですし(POP3のようですが)、
「Inbox」は615,866KBで、2014年以降のメールが表示されない時に、2014年よりも前のメールがあるのかないのか、なども不明なので、
どうなっているかの推測もできません。
「フォルダーを修復してください。」は、Bug 931303 のエラーメッセージに見えますが。

何か(特に、Compact、フォルダーの圧縮)が入れば、どうあがいても復活は無理なので、まずは、Thunderbirdを正常に終了した状態で、Thunderbirdのプロファイルディレクトリーのバックアップをとってください。
メッセージの保存先の設定で、メールデータをプロファイルディレクトリーの外においていた場合は、そのバックアップが必須です。
全てはその後の話になります。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2016年11月30日(水) 01:24 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
POP3だと仮定して、いろいろチェックする時のために、説明だけでわかる範囲で、起こったであろうことについて書いておきます。

メールのデータは、Inboxなどの拡張子無しのファイルの中に、"From - ..."、"Mozilla-Status: ..."といった行の後ろにメールのデータ、といった形で追加されていきます。
そして、削除すると、Mozilla-Status:に「削除済」と書くだけです。
「Recover deleted message」は、この「削除済」の状態を消して、もう一度メールとして見られる状態にしているだけです。

長くなるので、上記のラインとメールデータのセットを「メール#nnn(Deleted)」のように書きます。

(1) Inboxの状態     (2) メールのダウンロード
 メール#001(Alive)     メール#001(Alive)
 メール#002(Deleted)    メール#002(Deleted)
  |             |
 メール#009(Alive)     メール#009(Alive)
              メール#010(Alive)
                |
              メール#019(Alive)
              メール#020(Alive) <= フィルターで移動しようとしてエラー
              メール#021(Alive) それ以降のメール

この後、失敗したフィルターでの移動先で何かをしただけならば、Inboxでは何も起こらないはずです。
何かあっても、Inboxで「フォルダーの修復」をすると、上記のデータがそのまま残っていさえすれば、(Deleted)のもの以外は全部見えます。

ただし、この状態で「フォルダーの圧縮」をすれば、(Deleted)のメールのデータは除去され、その後ろのデータが順に前につめられていきます。
Inboxで、メール#nnn(Deleted)の状態のデータが除去されてしまっていれば、データそのものがないのだから、どうあがいても、無理です。
「フォルダーの修復」や「Recover deleted message」で、どうなっているか、ご自分で確認してください。

失敗したフィルターでの移動先で「フォルダーの修復」を行ったら2000個ものメールが出てきた、というのは、上記とは少し違います。
FolderX(拡張子無し)には、メール#nnn(Alive)でずっと書きこまれていたが、FolderX.msfが壊れた状態をずっと放置していたので、Thunderbirdのバージョンをあげた時にエラーメッセージがでるようになった、ということでしょう。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2016年12月01日(木) 00:02 
WADA様 レスをありがとうございます。
そして 情報が足りない状態なのにわかりやすい説明をありがとうございます。

WADA さんが書きました:
「Recover deleted message」で試した中に「受信トレイ」(Inbox/Inbox.msf)が含まれるのか含まれないのか不明ですし、POP3かIMAPかも不明ですし(POP3のようですが)、
「Inbox」は615,866KBで、2014年以降のメールが表示されない時に、2014年よりも前のメールがあるのかないのか、なども不明なので、
どうなっているかの推測もできません。

「Inbox」と「Inbox.msf」は、ありました。
そして POP3です。

「inbox」の中を見てみたのですが 表示されている2013年以前のメールは、普通に読める状態で書いてありました。
が それ以降のものに関しては、英数字の羅列が並んでいるだけです。
やはり「inbox」が壊れてしまっているのでしょうかね・・・

WADA さんが書きました:
何か(特に、Compact、フォルダーの圧縮)が入れば、どうあがいても復活は無理なので、まずは、Thunderbirdを正常に終了した状態で、Thunderbirdのプロファイルディレクトリーのバックアップをとってください。
メッセージの保存先の設定で、メールデータをプロファイルディレクトリーの外においていた場合は、そのバックアップが必須です。
全てはその後の話になります。


バックアップは、おかしくなった直後の「inbox」と「Inbox.msf」と「Recover deleted message」等を試したあとのプロファイル全部を取っています。

あれから怖くなってメールの送受信をしていない状態です。

_________________
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2016年12月01日(木) 08:49 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
karin2016 さんが書きました:
バックアップは、おかしくなった直後の「inbox」と「Inbox.msf」と「Recover deleted message」等を試したあとのプロファイル全部を取っています。
それなら、現在のものはいじらず、バックアップのファイルで何度も試せますね。

karin2016 さんが書きました:
あれから怖くなってメールの送受信をしていない状態です。
お気持ちわかります。
でも、大抵は、サーバーに残す設定で、14日後に消す、はオフにしているだろうから、全部サーバーにあって(サーバーにはいい迷惑だけど)、全部をもう一度ダウンロード、という手もあります。
私のISPは、一年とか半年で消しちゃうんですけど。

karin2016 さんが書きました:
「inbox」の中を見てみたのですが 表示されている2013年以前のメールは、普通に読める状態で書いてありました。
が それ以降のものに関しては、英数字の羅列が並んでいるだけです。
やはり「inbox」が壊れてしまっているのでしょうかね・・・

615,866KBと、600MBもあっても、最近はテキストエディターで楽に編集できるようですね。
英数字の羅列は、base64でエンコードされた大きな添付ファイル部分でしょう。

先に書いた「メール#nn(Deleted)」というものは、
 From - ... <= メールとメールを分けるセパレーター
 Thunderbird用の幾つかのヘッダー
 X-Mozilla-Status: ... <= ここに「削除済」のフラッグが書いてある
 Thunderbird用のその他の幾つかのヘッダー
 メールのデータ
という、非常に単純な形で保存されています。
メールのデータの部分の構造はメールだから結構複雑なんですが、単なるテキストの行の塊。

「Recover deleted message」は、この形の「From -」の行を見ていて、この行でメールを分離できれば、その中のヘッダーなどが壊れていたとしても、メールとして見せてくれるはずだから、
Inbox.msfが壊れていて、メールデータのオフセットの情報が狂っているときに、設定による自動的なフォルダーの圧縮が入ってしまい、
その時に、位置情報が狂っているから、「From - 」の行を、メールのヘッダーやデータだと認識し、
メールとメールを分けるセパレーターにならないように、「>From -」とか「スペース+From -」でエスケープした、
という感じがします。

Inboxの日本語訳をわざわざ「受信『トレイ』」にしているにも関わらず、2GBを超えるような巨大なInboxというファイルを愛用している方だと、こういった問題に出会える確率が高くなります。

この場合、原理的には、ファイルの先頭から問題のある部分よりも前の生きているメールのデータを全て他のファイルに移し、
残りの部分の「>From -」を「From -」に戻してやれば、
とりあえずはメールとして見られるようになり、
そこで、「Recover deleted message」で「削除済」を消せば、
Thunderbird上でもメールとして見られるようになります。
オーバーラップがあったりして、メールの中身が壊れていることもありますけど。

バックアップのなかのInboxというファイルを適当な名前に変えてコピーし、
そのファイルをテキストエディターで見て、"From -"や"X-Mozilla-Status:"で検索したり、編集してみてください。
一気にやると大変だから、問題がないものを、先頭から少しずつFolder-nnnといった他のファイルに移し、
それをThunderbirdのメールディレクトリーに置けば、
再起動後にFolder-nnnというメールフォルダーとして見られます。
半分くらいに減れば、壊れた部分を探すのも、少しは楽になるでしょう。

また、「フォルダーの修復」は、Inboxの中身は一切変えずに、Inbox.msfを作り変えるだけだから、
「フォルダーの修復」を行って、「受信順」と「サイズ」のカラムを表示し、「受信順」でソートしてみてください。
受信順が一番大きなもの(生きている中で一番後ろのもの)のサイズが異様に大きい、といったようなことがありそうに思えます。
メッセージのソースを表示して見ると、壊れた様子を見られるかも。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2016年12月01日(木) 11:57 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
別の壊れ方があるのを忘れてました。

セパレーターの前後は、0x0D0Aを[CRLF]と書いた時、ファイルの中では、
 前のメールの終わり
 [CRLF]From - ...
 [CRLF]X-Mozilla-Status: ...
といった感じで書かれているのですが、
位置情報が2バイトずれていて、コンパクトの時にセパレーターの前の[CRLF]が失われ、
 前のメールの終わりFrom - ...
 [CRLF]X-Mozilla-Status: ...
となってしまうケースもありました。
こうなると、「前のメールの終わり」を含むメールが生きていれば、そのメールが巨大なメールになって表示されます。
multipartのメールだと、close-boundary以降は無視されるので、メールの表示としては正常で、見た目にはわからないのですが、サイズが巨大になるはずです。
Inboxの中の後半部分がまとめて一気に消えた、という感じで、状況からすると、それらのメールが全部削除される、というようなことが起こるような状況とは思えないので、2バイトずれる問題の可能性の方が高いかな。
これだと、一気にまとめて、は、消えたメールは全部2バイトずれていた、とすると、説明がつきます。

この場合は、From - ...の前に改行を入れれば、他のデータが壊されていない限りは、比較的被害が少ない状態で、メールの形に戻ります。
メールの数だけ改行を入れる必要があるんですけどね。

ご参考までに。

[追記]
昔のバグのことを書いていたら、あり得そうなことに思い至りました。
もしかすると、以下のようなこと?

フィルターでのメールの移動は、ひとつのフォルダーに移動だけで、今まではmsfが壊れていたから、メールデータのコピーはしても、Inboxからは一度も削除されていなかった。
削除が無いから、自動的なInboxの圧縮も発生しなかった。
⇒ Thunderbird 45になったらエラーメッセージがでてフォルダーの修復をしたので、フィルターでの移動が正常にできて、Inboxからメールが削除されて、自動的なInboxの圧縮が発生した。
⇒ その時、かなり以前のバグで位置情報が2バイトずれた状態が残っていたので、それ以降のメールが一気に見えなくなった。

これだと、状況の説明と合致しそうに思えますし、600MBくらいで2GBからはかなり遠いのにコンパクト絡みの問題がおこったようである、ということの説明もつきます。
[追記おわり]


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2016年12月03日(土) 15:46 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
600MBもあって、テキストエディターでの編集も大変だろうから、苦労していると思いますが、
2013年のものまでは全てが正常で、2014年のある時点のもの以降が全て見えなくなった、という状況のようですから、おおまかな回復作業について書いておきます。

Inboxの中身が以下だと仮定します。
 (A) 完全に正常な部分
 (B) メールとしては正常に見えるが、後ろに他のメールのデータがくっついてしまった、最後の「正常」なメールのデータ
 (C) 何らかの異常があり、メールとして見えなくなった部分のデータ
(1) (A) と (B)/(C) を、二つのファイルに分割する(FileAとFileBCと呼びます)。
(2) FileAを、Thunderbirdのローカルフォルダのメールディレクトリーにコピーし、FileAとして見えるようにし、正常であることを確認。
(3) FileBCで、以下のようになった行の途中の部分の全てに改行を入れて、メールのセパレーターを復活してFileBC-01を作る。
 [CRLF]前のメールの終わりFrom - ...
 [CRLF]他のヘッダー
 [CRLF]X-Mozilla-Status: ...
 [CRLF]見えなくなったメールのデータ
⇒ FileBC-01
 [CRLF]前のメールの終わり
 [CRLF]From - ...
 [CRLF]他のヘッダー
 [CRLF]X-Mozilla-Status: ...
 [CRLF]見えなくなったメールのデータ
(4) このFileBC-01をThunderbirdのローカルフォルダのメールディレクトリーにコピーし、FileBC-01というフォルダーとして見えるようにして確認。
必要ならば、「Recover deleted message」で「削除済」を消して、復活させておく。
(5) FileBC-01で、「[CRLF]>From - 日付」や「[CRLF]空白 + From - 日付」になっているすべての行を、
  「[CRLF]From - 日付」の行に戻して、FileBC-02を作る。
(6) このFileBC-02をThunderbirdのローカルフォルダのメールディレクトリーにコピーし、FileBC-02というフォルダーとして見えるようにして確認。
必要ならば、「Recover deleted message」で「削除済」を消して、復活させておく。

以上で、壊されたセパレーターの部分の復旧工事が終わります。

(7) 壊れたメールのデータがないメールデータの部分をFileBC-02から抜き出して、正常なFileBC-02-OKとFileBC-02-BADに分ける。
 [CRLF]前のメールの終わり
 [CRLF]From - 日付...    ⇒ FileBC-02-OKに移動する
 [CRLF]他のヘッダー     ⇒ FileBC-02-OKに移動する
 [CRLF]X-Mozilla-Status: ...  ⇒ FileBC-02-OKに移動する
 [CRLF]他のヘッダー     ⇒ FileBC-02-OKに移動する
 [CRLF]正常なメールデータ  ⇒ FileBC-02-OKに移動する
 [CRLF]From - 日付...
⇒ 残ったものを、FileBC-02-BADとする
(8) このFileBC-02-OK・FileBC-02-BADをThunderbirdのローカルフォルダのメールディレクトリーにコピーし、FileBC-02-OK・FileBC-02-BADというフォルダーとして見えるようにして確認。
必要ならば、「Recover deleted message」で「削除済」を消して、復活させておく。
(9) FileBC-02-BADを編集して、メールデータとしては壊れてはいても、必要なメールデータ部分が残っていれば、とりあえずはメールの形に見えるように加工して、それをFileBC-03-OKに移動し、残ったものをFileBC-03-BADとする。

こんな感じで、生き残ったメールや、完璧に壊されずに済んだメールのデータを、順番に救い出しましょう。
単に、『「From - 日付の行」+複数の「メールのヘッダーや中身の行」』の塊が、ひとつのファイルにたくさん入っているだけですから、別にどうってことはない話です。
もっとも、巨大なファイルで、『 ... 』の一個の塊が大きくて、その塊がたくさん入っているから、テキストエディターで編集するのが思いっきり大変ですけどね。
それと、メールの場合は、メールごとに別々の文字コードセットのデータになっていて、一つのメールの中でも複数の異なる文字コードセットのデータがあり得るけれど、
テキストエディターは、基本的に一つの文字コードセットしか扱わないから、編集中に、バイナリーをそのまま保存してくれなくて勝手にコード変換してしまうこともあって、その場合にはメールのデータが壊れてしまうので、
一筋縄ではいかない場合もある。
こういった場合には、ツールで、ファイルの中のある行数・あるバイト目の場所からある行数・あるバイト数を抜き出す、ある行数・あるバイト目にあるデータを書き直す、というようなことが必要になってきます。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 7 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[137人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean