Dovecot: 破損した Mbox インデックス キャッシュ ファイル

Dovecot: 破損した Mbox インデックス キャッシュ ファイル

次のエラー メッセージが表示されました/var/mail/mail.err:

Jun 14 00:03:42 max dovecot: IMAP(bernhard): 
Corrupted index cache file /home/bernhard/Mail/.indexes/.imap/INBOX/dovecot.index.cache: 
Broken virtual size for mail UID 5618

インデックスを復元するための推奨される方法は何ですか?

答え1

このスレッドによると:IMAP Dovecot エラー - インデックス キャッシュが破損しています 10.6.4以下のことを行うだけでよいようです:

スクライブ

Re: IMAP Dovecot エラー - インデックス キャッシュが破損しています 10.6.4

2010 年 11 月 30 日 午前 11:10 (Scribit への返信)

これが最善の手順であるかどうかはわかりませんし、意図しない結果が生じる可能性もありますが、問題を解決するために私が行ったのはこれです。

メールサービスを停止しました。

シェルから、問題が報告された各ディレクトリに移動しました。

これらのディレクトリで、次のファイルの名前を先頭に「old」を付けて変更しました。

   dovecot.index
   dovecot.index.cache
   dovecot.index.log

例:mv dovecot.index old.dovecot.index

その後、メール サービスを再起動しました。クライアント アクセスの各 IMAP フォルダーに対して、これらの 3 つのファイルが再作成されました。

答え2

インデックス ファイルを復元する最も簡単な方法は次のようになります。

Dovecotを停止する

sudo systemctl stop dovecot

影響を受けるユーザーの .imap フォルダ全体を名前変更または削除します (削除をお勧めしますが、慎重な人はそう思わないかもしれません)

sudo rm -R /home/bernhard/Mail/.indexes/.imap/

Dovecotを起動する

sudo systemctl start dovecot

メールボックスがチェックされると、Dovecot は、以前に見たことのない新しいメールボックスであるかのように、何の遅れもなくインデックスを再作成します。

答え3

私も同じ問題を抱えていました。削除してdovecot.indexも機能しません。一部の破損した電子メール ファイルによって dovecot.index が再び破損したためです。

例:

Error: Corrupted record in index cache file /home/user/mail/domain/username/.INBOX/dovecot.index.cache: UID 1227: Broken virtual size in mailbox INBOX: read(/home/user/mail/domain/username/.INBOX/cur/1600772501.M603394P22807.paxaa.host.com,S=9099624,W=9217854:2,S): FETCH BODY[] got too little data: 2846393 vs 9217854

最終的に、dovecot.index を破損したメールのバックアップからメールを削除/復元することができました。

関連情報