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



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 7 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2015年5月28日(木) 12:40 
オフライン

登録日時: 2015年5月28日(木) 12:27
記事: 4
Thunderbird 31.7.0をWindows 7 (64bit)で使っています。

突然送信済みトレイの中身が5、6件になってしまいました。

Sentファイルも小さくなってしまいました。

バックアップを取ってあったので、そのサイズを見ると、1.6Gあります。
大きすぎるのでファイルを分割してテキストファイルエディタでのぞいてみると、元の情報が入っているようです。

これをなんとかして元に戻したいのですが、どなたか良い方法をご存じないでしょうか?

以下の方法では駄目でした。
 200M程度に分割。
 テキストファイルエディタで、最初の行と最後の行がメール本文を表すように文字を切り貼り。
 (1番目のファイルの最後がメールの終わりの区切りになるように、
  2番目のファイルの先頭をメールの区切り部分までコピペ)
 Thunderbird起動。
 
 全然読んでくれません。件数が増えません。

 この状態で、最適化をすると、無理矢理作ったSentは0バイトになってしまいます。
 
 メールのタイトル一覧のようなデータをどこかで持っているのでしょうか?

 長い事、Thunderbirdを使用していますが、このような現象は初めてです。

 何かご存じの方アドバイスよろしくお願いします。

_________________
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年5月28日(木) 13:29 
オフライン

登録日時: 2011年7月14日(木) 22:59
記事: 547
とりあえずPOPかIMAPかの明示を。
ローカルで起きているのか同期(IMAPの場合)のトラブルなのかで対処が変わるので。

それから、異常が起こる前後に何か設定変更や操作など行ったものはありますか?

_________________
Thunderbirdの基本を書いています(ずっと発展途上) とりかごとなり。
基本の操作(画像あり):バージョン確認 / セーフモード / 新規プロファイル作成


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年5月28日(木) 13:51 
オフライン

登録日時: 2015年5月28日(木) 12:27
記事: 4
meeyarさん、ありがとうございます。

ローカルフォルダの
受信用のアドレスは15ほどありまして、POPとIMAPの両方があります。
全部ローカルフォルダにメールが来るようにしてあります。

送信用のアドレスは主に1つしか使っていません。それはSMTPです。

ヒントになるでしょうか?

_________________
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年5月28日(木) 16:51 
オフライン

登録日時: 2015年5月28日(木) 12:27
記事: 4
Sentファイルを200Mぐらいに分割して、テキストエディタでのぞいてみると

X-Mozilla-Status: 0009
X-Mozilla-Status2: 00800000

となっているメールがあります。

これを無理矢理
X-Mozilla-Status: 0000
X-Mozilla-Status2: 00000000
に直した後、

「ImportExportToolsでmboxファイルをインポート」
すると、大半のメールが読めるようになりました。

使ったテキストエディタはTeraPadで、これで読むときにJISで読み込んでおくと文字化けが発生しにくいようでした。

もっとかんたんに一発で出来る方法があれば教えていただきたいと思います。

ありがとうございました。

_________________
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年5月28日(木) 21:36 
オフライン

登録日時: 2011年7月14日(木) 22:59
記事: 547
watanove さんが書きました:
ローカルフォルダの
受信用のアドレスは15ほどありまして、POPとIMAPの両方があります。
全部ローカルフォルダにメールが来るようにしてあります。

送信用のアドレスは主に1つしか使っていません。それはSMTPです。

ええと、書き方悪かったかもです。
SMTPかどうかではなく、POPとIMAPとでは受信メール以外(送信済みや下書きなど)のメールボックスの扱いが異なるのです。

IMAPは受信メールだけではなく、送信、下書き、ごみ箱なども含めたメールボックス全体をサーバーと同期します。
POPの送信済みメールはローカルにしか存在しませんが、IMAPは送信済みメールも同期対象となりえます(サーバー設定に依存しますが…)。
https://ja.wikipedia.org/wiki/Internet_ ... s_Protocol
https://support.mozilla.org/ja/kb/imap-synchronization

最初の記事だと、IMAPだった場合、
よそのメール環境で送信済みメールを削除扱いにした

サーバー側で「これは削除済み」という情報を更新

サーバーとの接続時に今回の環境でも削除された
などの可能性もありかと思いました。
この場合削除されるのはIMAPの仕様(削除の情報も込みで同期される)なので、「正常」な働きです。

今回問題となったメールアドレスが、
POPの場合→主にローカルのみの問題
IMAPの場合→ローカル環境に加え、サーバー側のメールボックスの状態も確認する必要があります。

watanove さんが書きました:
Sentファイルを200Mぐらいに分割して、テキストエディタでのぞいてみると

X-Mozilla-Status: 0009
X-Mozilla-Status2: 00800000

となっているメールがあります。

これを無理矢理
X-Mozilla-Status: 0000
X-Mozilla-Status2: 00000000
に直した後、

「ImportExportToolsでmboxファイルをインポート」
すると、大半のメールが読めるようになりました。

既にご存知かもしれませんが、X-Mozilla-Status:0009というのは「既読メールが削除されました」フラグです。
http://tamcat.blog.so-net.ne.jp/2007-01-04
http://www.eyrich-net.org/mozilla/X-Moz ... us.html?en
http://forums.mozillazine.org/viewtopic ... 9&t=484449
Thunderbirdはメールボックス全体を一つのファイル(mbox)として管理しているため、いきなりメールを削除ではなく「削除しました」フラグを付けておき、最適化の時に完全削除します。
で、0009→0000の操作は「削除済み→未読」に強制変更しているので読めるようになっているのですね。

印象ですが、どこが(メールソフトなのか、サーバー側なのか、そのほかの要素なのか)メールを削除したのかきちんと検証した方がいい気がします。
どこかでメールの削除操作がされている(でも「どこか」はわからない)状態のまま今回のように強引にフラグを書き換えても、削除する原因が生きたままだと、再度同じ状況が発生するのではと思うためです。

また、mboxファイル全体をJISで書き換えるのは思いっきり力技です。
これをやってしまうと、他のエンコーディングのメール(UTF-8など)は文字化けして読めなくなります。

_________________
Thunderbirdの基本を書いています(ずっと発展途上) とりかごとなり。
基本の操作(画像あり):バージョン確認 / セーフモード / 新規プロファイル作成


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年5月29日(金) 08:28 
横から失礼します。

watanove さんが書きました:
突然送信済みトレイの中身が5、6件になってしまいました。

Sentファイルも小さくなってしまいました。

Thunderbird 上のフォルダに対応する、プロファイル配下の実体ファイルが、「送信済みトレイの中身が5、6件」に相当する容量になっていたのなら、その分のメッセージデータが完全に消去された可能性が高いと思われます。

バックアップファイルからの復元で解決できるに越したことはありません。しかし、meeyar さんが心配しておられるように、不用意に消えてしまった原因を見極めないままだと、再発の可能性が残ります。

watanove さんが書きました:
バックアップを取ってあったので、そのサイズを見ると、1.6Gあります。

バックアップする前は、その容量で Thunderbird に問題なく認識されて読み書きできていて、その正常な状態をバックアップしたものであれば、何ギガバイトあろうと分割などせずそのまま書き戻しても問題はないはずです。

しかし万一、ファイルが肥大化して日常の動作が不安定になってきたのでバックアップをとった......といった経過があるのなら、不安定さを体感した時点で、ファイルに不具合が起こっている可能性が考えられます。もしそうなら、その不具合を含んだ状態で復元してしまう可能性が高くなることに注意を払ってください。
この場合、手動で分割したり、"無理矢理" X-Mozilla-Status を書き換えたりしていると、さらに思いもよらないトラブルを招き入れてしまう危険性が高まります。

watanove さんが書きました:
 200M程度に分割。

バックアップファイルを分割しなければならない理由はなんですか?

ファイルの容量は、そのシステム環境で安定して取り扱える範囲内であれば、何ギガバイトあっても理屈の上では障害になりません(*)
むしろバックアップファイルが正常であることのほうが重要です。バックアップファイルに損傷があると、数メガバイトの小容量でも正常に復元できないことがあります。

正常な状態のバックアップファイルを正常に復元することを優先したいなら、メッセージの実体ファイルを分割することは、あまりお勧めしません。
メッセージデータの実体である mbox ファイルの構造を熟知し、文字コードの扱いなどを含めて手動操作で絶対にミスはしないという自信があるなら、そういうやり方を否定はしませんが、通常はバックアップファイルをそのまま使うほうが安全だと思います。
ファイル容量の大きさ以外に、どうしても分割が避けられない理由(例:システムスペックの制約で一度にギガバイト級のファイルを扱えないとか...)があるのなら、その条件を見すえた慎重な作業が必要になります。

(*) 原則的にはそうですが、メールデータなど送受信のたびに書き換えられるファイルが無原則に肥大化するのは、安定性の観点からは好ましいことではありません。システム環境や運用条件によっても限界点は変わってきますから、何ギガバイトまでなら大丈夫と機械的には決められませんが、ひとつのフォルダにメッセージを溜め込まない、「最適化」などのメンテナンスを適宜おこなうことを日常的に心がけたほうが、トラブル予防に役立つと思います。

watanove さんが書きました:
もっとかんたんに一発で出来る方法があれば教えていただきたいと思います。

Thunderbird 上の [ローカルフォルダ] 配下にある [送信済みトレイ] のメッセージが消失したため、バックアップしてある実体ファイルからデータを書き戻したい(復旧したい) ―― という話だと解釈しての話です。(下記【注】参照)

細部の条件はユーザーがやってきた運用方法に左右される部分もありますが、基本的な考え方は非常に簡単です。以下、[ローカルフォルダ] は基本的に POP 用という前提で書きます。

ご承知のように、現在使っている [ローカルフォルダ] 配下の [送信済みトレイ] は、プロファイル内の次のファイルが実体です。
%APPDATA%\Thunderbird\Profiles\<xxxxxxxx.default>\Mail\Local Folders\Sent

この Sent ファイルが破損したことになるので、(正常に)バックアップしてある ~ \Mail\Local Folders\Sent ファイルと、そっくり置き換えればいいだけの話です。
容量云々は上述のとおりです。

さて、既存の [送信済みトレイ] に "中身が5、6件" 残っていて、それらがバックアップにないメッセージなら、プロファイル内の実体ファイルである Sent をリネームし(例:Sent_Old など)、書き戻すファイルと名前が競合しないようにしておきます。

その上でバックアップの ~ \Mail\Local Folders\Sent を、復元先の
%APPDATA%\Thunderbird\Profiles\<xxxxxxxx.default>\Mail\Local Folders\
にコピーしてから Thunderbird を起動すれば、書き戻した Sent ファイルを読み込んで、[送信済みトレイ] が再構成されるはずです。

リネームした Sent_Old ファイルは、Thunderbird 上で同名のフォルダとして認識されますから、このフォルダにあるデータを [送信済みトレイ] に移動またはコピーすれば、新旧のデータをマージ(結合)できます。

【注】
次の記述から見て、少々不安を感じることがあります。
watanove さんが書きました:
ローカルフォルダの
受信用のアドレスは15ほどありまして、POPとIMAPの両方があります。
全部ローカルフォルダにメールが来るようにしてあります。

POP であれ、IMAP であれ、各アカウントは必ず対応する固有のサーバを持ちますが、[ローカルフォルダ] はそれを持ちません。
Thunderbird の [ローカルフォルダ] は元来、複数の POP アカウントを [共通受信トレイ] に統合するための擬似アカウントとして存在します。
この設定は、POP アカウントの [アカウント設定] -> [<AccountName>] -> [サーバ設定] -> [メッセージの保存] -> [詳細] から開く [アカウントの詳細設定] で設定します。

POP アカウントの性質上、POP サーバ上はひとつのメールボックスがあるだけで、そこにあるメッセージをクライアント側のどのフォルダにダウンロードして保存するかは、とくに決まりがありません。ですから、[メッセージの保存] -> [詳細] から複数の POP サーバのメッセージの受け皿として、[ローカルフォルダ] に一括対応させることができます。

一方、IMAP アカウントは、サーバ上のフォルダとクライアント上のフォルダに1対1の同期関係があるのが普通ですから、POP アカウントのよう複数をまとめた [共通受信トレイ] として [ローカルフォルダ] に統合することはできません。
ただし、IMAP サーバからダウンロードしたメッセージの振り分け先として、[ローカルフォルダ] 配下に作った任意のフォルダに移動(コピー)することはできます。こうすることで、IMAP の同期から切り離してメッセージを保管できます。

POP と IMAP では、管理の仕組みに違いがある点に留意してください。Thunderbird のプロファイルでも、標準状態では両者を区別しています。

 <xxxxxxxx.default>
    ├ ImapMail ……………… IMAP アカウントが配置されるフォルダ
    └ Mail …………………… POP アカウントが配置されるフォルダ
      └ Local Folders … POP アカウント用の Mail フォルダにのみ存在

[ローカルフォルダ] は、複数のアカウントのメッセージをまとめて管理できるというメリットがありますが、同じ理由から個々のフォルダが肥大化しやすいというデメリットをあわせ持ちます。
watanove さんがおこなっておられる "POP と IMAP の両方を [ローカルフォルダ] に集約するような運用方法" が具体的にどのようなものかわかりませんが、一般的には IMAP アカウントでは保管目的以外に [ローカルフォルダ] は使いませんから、やりようによってはトラブルを招きやすい状態になってしまったのかもしれませんね。

X-Mozilla-Status の書き換えなど、他にも不安要素はあります。
X-Mozilla-Status: 0009 はご指摘があるように「削除済み」のフラグですから、それがバックアップファイルに大量にあったのだとしたら、その 1.6 GB のファイルはメンテナンスされてこなかった状態とも考えられますし、バックアップの取り方が特殊なのかもしれませんし......。

ただ、あれこれ心配しても先に進みません。バックアップが万全に保管されているなら、やり直しは効きますから、上述したように余分なことを一切しないで素直に Sent を書き戻しみてはいかがでしょう。定石的な対処を実行した結果を見てから、それをふまえて次の手を考えたほうがいいと思います。

とりあえず以上です。役に立たない話だったらすみません。

_________________
Mozilla/5.0 (Windows NT 6.2; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2015年5月29日(金) 09:05 
オフライン

登録日時: 2015年5月28日(木) 12:27
記事: 4
meeyarさん、偶然的通行人さん、
とても丁寧なご説明ありがとうございました。

お二人のご説明のおかげでだいぶ分かってきました。

ご心配頂いている、POPかIMPAかですが、
常時送信用のサーバとして使っているサーバはPOPなので、
大半の送信済みメールはLocalフォルダのSentファイルに入っていました。
IMAPを使っているサーバはほとんど送信には使っていないので、
今回はLocalフォルダにあるSentファイルを復活させることが
メインの目的になります。

他のPC等から送信済みを削除したということは、今回は心配しなくて良さそうです。


「X-Mozilla-Status:0009というのは「既読メールが削除されました」フラグ」なんですね。

このフラグがSentファイルのほぼすべてのメールに設定されてしまっていたのが、今回のトラブルの原因
のようです。
この状態なので、最適化を行うとほぼすべてのメールが実際に削除されます。
でも、本当は削除されたら困るのです。
(削除取り消しという操作ができると良いのですが、ちょっと見当たりません。)


すでに削除ずみのフラグがたっているSentファイルは1.6Gあり、実際の削除は行われていない状況です。

最初に私がとった方法は、
このフラグが原因だというのが分からなかったので、
とにかく、テキストエディタ(TeraPad)で開けるサイズにまず分割して、
それを開いて、2つのフラグを置換で0000と00000000に変換してみたのです。
それをImportExportToolsで読み込むと、大半のメールは読めるが、文字コードによっては全然読めない、
という状態にまで行けました。
(meeyarさんご指摘の文字化けが起きました。)

次に、私がとった方法は、
簡単なプログラムを作り、2つのフラグを無理矢理0にしてしまう方法でした。
X-Mozilla-Status: 0000
X-Mozilla-Status2: 00000000
私のプログラムは、原始的と言いましょうか、文字コードも気にせず1文字ずつファイルから読み取り、
これらのフラグが来たら0000か00000000を書き出し、
このフラグの部分以外は何もせずにそのまま新しいファイルに書き出すプログラムです。

これで無理矢理フラグをクリアしたファイルをLocalフォルダにコピーすると、
すべてのメールが読めるようになりました。

ですが、これを送信済みフォルダや、アーカイブフォルダに移動すると、
メールタイトルだけしか読めなくなってしまいます。
まだ他のフラグなどの設定も必要なのかも知れません。

ですが、一応全部読めるようになったので、今回はここまでにしようかと思います。

肝心な、なぜ削除済みフラグが設定されてしまったのか?ですが、
最近ThunderBirdが応答無しになって全然反応しなくなる事があり、
強制終了!したのが原因かも知れません。

貴重なご意見ありがとうございました。
大トラブルで、右往左往しているときの迅速かつ適切なアドバイスは本当に助かりました。
ありがとうございました。

_________________
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0


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

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: Google [Bot] & ゲスト[92人]


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

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