Мы используем dovecot как сервер IMAP и postfix для доставки почты. Один из наших пользователей жалуется, что электронная почта задерживается (нет, мы не используем серый список или что-то в этом роде). /var/log/mail.info показывает эти сообщения журнала, когда пользователь должен получить это электронное письмо. Почтовые каталоги (например, / mail) монтируются через NFS (если это помогает)
Jul 26 18:31:08 mail1 deliver(user@example.com): Corrupted transaction log file /mail/example.com/user/dovecot.index.log: start_offset (5160) > file size (5140)
Jul 26 18:31:08 mail1 deliver(user@example.com): fscking index file /mail/example.com/user/dovecot.index
Jul 26 18:31:08 mail1 deliver(user@example.com): msgid=<20090726173107.8361B2DD@mail.example.com>: save failed to INBOX: Internal error occurred. Refer to server log for more information. [2009-07-26 18:31:08]
Ооо! Причина задержки в том, что dovecot пытается обработать поврежденный индекс.
Просто попросите пользователя выйти из почты, удалите индексный файл, и он будет автоматически воссоздан при входе в систему. Таким образом, просто сделайте следующее:
rm /mail/example.com/user/dovecot.*
Dovecot создает временные индексные файлы для каждого сообщения; когда пользователь входит в систему в первый раз, индексы создаются с нуля, если их нет, так что это простое и эффективное исправление, и оно работает каждый раз. У меня такое случалось с более ранними версиями Dovecot, и удаление индекса эффективно на 100%. во всех случаях.
Вы являются хранить почту на этом монтировании NFS в формате maildir, верно?
Кстати, в версиях Dovecot до 1.0 или в бета-версиях эта проблема возникала регулярно. В более новых версиях это исправлено.