過去ログ表示


過去ログ 382 を表示

トピック内全 5 記事中の 1 〜 5 番目を表示
[ 最新記事及び返信フォームをトピックトップへ ]
このトピックの全ページ / [0]

Thunderbird メール消失について
(#56714) このトピック中1番目の投稿
(環境: WinXP SP3/Safari)

Windows7を仕事用ノートPCで使っています。
ブラウザはGoogle Chrome, メールソフトはThunderbird17.0.4です。
2日前、ここ1年間のメールがローカルフォルダの
受信トレイからごっそり消えてるのに気づきました。
受信トレイにある他の期間のメールや、受信トレイ以外のフォルダは大丈夫です。
「送信済み」や「受信トレイからメッセージルールで振り分けたフォルダ(メルマガなど)」はすべて残っています。
そこで、
http://forum.mozilla.gr.jp/?mode=al2&namber=29187&rev=&&KLOG=185
を参考に、まずはinbox.smfを消して再起動しましたが、やはり駄目です。
そこで別の方法を試しました。「Inbox」という名前で700MBのファイルが
受信トレイのメールを一括で管理してるファイルのようなので
EMLEXTRACTERというソフトで抽出しました。すると興味深い結果が。

メールのひとつひとつが、10kb程度の単ファイルとして抽出されてきました。
しかし、それで抽出されたのはThunderbird上でも見れるメールのみ(ここ1年以外の古いメールは受信トレイに残ってて、普通に見れます)。
そして、これに加えて200MBくらいの巨大emlファイルが一個出てきました。
これをThunderbirdで開くと、出てくるのは普通のメール1通だけ。とても200MBあるようなメールではない。ということは、、、
「この200MBの巨大emlファイルが、現在見れなくなっているここ1年分のメールを含んだアーカイブファイルのような物なんだろうか?」と考えています。
そこで、この200MBのemlファイルをさらに解析しようと思うのですが、どのような手法を使えばよいでしょうか?エキスパートの皆さまの、お考えをお聞きいたしたく存じます。

Re: Thunderbird メール消失について
(#56725) このトピック中2番目の投稿
(環境: Other/Other)

#56714 の Yossy さん(投稿:2013/03/28(Thu)00:09:55,環境:WinXP_SP3/Safari)
maji と申します。


> 「この200MBの巨大emlファイルが、
> 現在見れなくなっているここ1年分のメールを含んだ
> アーカイブファイルのような物なんだろうか?」
> と考えています。

残念ながら私は Thunderbirdが Inbox の中をどんな特殊な使い方してるかは知りません。


> そこで、この200MBのemlファイルをさらに解析しようと思うのですが、
> どのような手法を使えばよいでしょうか?

Thunderbirdからは離れますが、以下の場所

http://ja.wikipedia.org/wiki/Mbox
http://man.qmail.jp/jman5/mbox.html

に mbox形式 と呼ばれるメールボックスファイルの説明があります。
Thunderbird でも使われている形式との事なので
トラブルシューティングの助けになるかと思います。

今回 Yossy さんが使われた EMLEXTRACTER がどんなモノなのか私は全く知りませんが
上述の mbox形式のファイルから eml形式のメールを抽出するツールではないかと思います。
もしそうであれば
元々の(mbox形式の)メールボックスの中身が何らかの形に崩れていて
Thunderbird でも EMLEXTRACTER でもメールとして認識できず、
EMLEXTRACTER で 1本の eml形式のメールとして抽出されたのではと推測しています。

とゆ事で
まずは任意なエディタ(→例えば メモ帳 )を使われ
元々のファイル又は「この 200MBの巨大emlファイル」を開いてみてください。
メール本文にあたる日本語表記の部分は文字化けし表示されるはずなので認識できないと思いますが
上述のリンクにて説明されてるメッセージ形式の冒頭の部分は ANKのはずなので(注: ANK の K は無いですね)
なんとか読み取れるかと思います。

そのメッセージ形式の冒頭部分がなんとか認識できて複数のメールだと判別できれば
(注: それがシステム的に認識判別できないから Thunderbird でも EMLEXTRACTER でも見れないのですが)
そしてどんなふうに「崩れて」いるか確認できれば
その崩れた個所をご自身で手を加えて正しい形に変更する事により
メールとして修復出来るかもしれません。
逆に
そのメッセージ形式の冒頭部分がなんとも認識できなければ
私の紹介するアプローチでの修復は諦めるしかないでしょう。


以上
私がアドバイスできるのはこのあたりまでですね。

では。



.

Re: Thunderbird メール消失について
(#56727) このトピック中3番目の投稿
(環境: Win 7/Safari)

ありがとうございます。
テキストエディタで中をのぞいていますが、結構厳しそうです。
壊れているところと壊れていないところの境界部を見つけるところからやってみます。

Re: Thunderbird メール消失について
(#56740) このトピック中4番目の投稿
(環境: WinXP SP3/Other)

> 「Inbox」という名前で700MBのファイルが受信トレイのメールを一括で管理してるファイルのようなので
> EMLEXTRACTERというソフトで抽出しました。
> メールのひとつひとつが、10kb程度の単ファイルとして抽出されてきました。
> しかし、それで抽出されたのはThunderbird上でも見れるメールのみ(ここ1年以外の古いメールは受信トレイに残ってて、普通に見れます)。
> そして、これに加えて200MBくらいの巨大emlファイルが一個出てきました。
> これをThunderbirdで開くと、出てくるのは普通のメール1通だけ。

Thunderbirdのファイルは、Unix Mbox形式で、
"From ..." という行をメールの境界として、
「"From ...." 行 + 複数のメールデータ行」がメールの数だけある、
という形式になっています。
そして、「複数のメールデータ行」の先頭に、X-Mozilla-Status:というヘッダーを置き、
そこに、2バイトデータのヘキサデシマル表示を書いておく、という方式になっていて、
その中のMSG_FLAG_EXPUNGEDビット=オンで、削除されたメールを示す、というようになっています。
> http://www.eyrich-net.org/mozilla/X-Mozilla-Status.html?en

ツールが、200MBものメール、と認識している部分は、
(A) "From ..."という境界の行が、メールの中のデータと認識されて、
境界と区別するために、">From ..."とエスケープされている、
(B) Tb 12以降Tb15あたりまでの、一連の、POP3でメッセージフィルターでメールのメタデータの一部を正しくセットしないので、その後にCompact(最適化)が行われた時にファイルの中身を壊してしまう、
(C) Tb 17で、またぞろ起こり始めたように見える、メッセージフィルターでメールのメタデータの一部を正しくセットしなくて、その後にCompact(最適化)が行われた時にファイルの中身を壊してしまう、
(D) POP3のダウンロードの時に、ファイルサイズが4GBを越してしまう、というバグが実際にあり、
その時に、場合によってはメールデータへのポインターが狂い、
その状態でフォルダーの最適化が行われると、
最適化の後のファイルサイズが4GB以下になると、最適化のエラーが起こらないので、
メールファイルの中身が壊れた、
(E) 正しい「"From ...." 行 + 複数のメールデータ行」の後にメールデータを書こうとした時に、"SEEK nnn"とか"SEEK +nnn"とか"SEEK -nnn"を実行しようとして、
あるコードではnnn用に32bits signed integerを使っていて、
別なモジュールでは、それを32bits unsigned integerとして使っていると、
2GBを超えると、32bits signed integerでは負の値になるので、
おかしなところにデータを書かれた、
というようなことが考えられます。

(B)/(C)/(D)の場合、"From ..."という境界の行がメールの中のデータと認識されるので、多分Compact(最適化)によって">From ..."でエスケープされ、
そこでRepair Folder(索引の再構築?)が行われると、残った"From ..."の行が境界になるので、(A)によって巨大なメールが出現することも、起こり得えます。

(E)に関しては、実際に、ファイルのサイズなどに関しては、32bits signed integer、32bits unsigned integer、64bits signed integer、64bits unsigned integer、を使うかがモジュールによって異なる、とう部分が、まだ残っています。
そして、SEEKの場所によっては、ファイルをクローズするとOSによってゼロでパディングされてそのサイズのファイルになる、というようなことも起こり得ます。
bug-org 494706 の場合には、
あるコードではnnn用に32bits signed integerを使っていて、エラー時には-1を返すようになっているが、
別なモジュールでは、それを32bits unsigned integerとして使うのでとんでもないところまで"SEEK"し、
ちょうど4GB-1バイトファイルが作られる、という現象になって表れました。

(D)や(E)は、巨大なメールフォルダー用のファイルを好んで作っていると、遭遇しやすい問題です。

このあたりをチェックし、">From ... X[CRLF]"の行があったら">From ... XY[CRLF]"に書き換える、MSG_FLAG_EXPUNGEDビット=オンのX-Mozilla-Status: ヘッダーがあったらMSG_FLAG_EXPUNGEDビットをオフに変える、などをすると、200MBのファイルの中がどうなっているかを把握しやすいでしょう。

Re: Thunderbird メール消失について
(#56742) このトピック中5番目の投稿
(環境: WinXP SP3/Other)

訂正です。

(誤) ">From ... X[CRLF]"の行があったら">From ... XY[CRLF]"に書き換える、

(正) ">From ... X[CRLF]"の行があったら"From ... XY[CRLF]"に書き換える、

要は、行の長さを変えずに、エスケープされた「>From ... X」の行を、エスケープされていない「From ... XY」の行に変えてみて、Repair Folder(索引の再構築、かな?)を行って状況を確認、ということです。


このトピックの全ページ / [0]

返信不可


- Child Tree -