Проблема с квотой при использовании maildirsize
Добавлено: 2009-03-25 13:14:37
Добрый день,
Возникла проблема с пересчетом квот в Exim при использовании maildir_use_size_file в транспорте appendfile.
Насколько я понял файл maildirsize полностью пересчитывается при попытке доставить сообщение, размер которого в сумме с уже используемым местом превышает размер допустимой квоты. Вот тут начинаются проблемы.
Courier-IMAP был скомпилирован таки образом, чтобы не учитывать Корзину при подсчете квоты.
Теперь представим следующий пример:
1. Квота ящика - 10Мб.
2. Места там уже занято на 9Мб.
3. Захожу почтовым клиентом по IMAP и удаляю 1 сообщение размером 1 Мб (тем самым оно копируется в .Trash на сервере, а исходное сообщение в cur помечается как удаленное с помощью флага T). Тогда в maildirsize добавляется строчка "-1024000 -1". Вроде все правильно. Почтовый клиент остается открытым.
3. Приходит письмо размером 3 Мб.
4. Поскольку в квоту уже не влезает, это вынудит пересчитать maildirsize полностью. Но поскольку удаленное письмо до сих пор лежит в cur с флагом T, оно учитывается при пересчете квоты и maildirsize обновляется соответственно.
5. Выхожу из почтового клиента. Файл из cur благополучно удаляется. Но теперь maildirsize содержит неправильную информацию о квоте.
Правильно ли, что Exim пересчитывает maildirsize полностью, учитывая сообщения, помеченные как удаленные флагом T?
Возникла проблема с пересчетом квот в Exim при использовании maildir_use_size_file в транспорте appendfile.
Насколько я понял файл maildirsize полностью пересчитывается при попытке доставить сообщение, размер которого в сумме с уже используемым местом превышает размер допустимой квоты. Вот тут начинаются проблемы.
Courier-IMAP был скомпилирован таки образом, чтобы не учитывать Корзину при подсчете квоты.
Теперь представим следующий пример:
1. Квота ящика - 10Мб.
2. Места там уже занято на 9Мб.
3. Захожу почтовым клиентом по IMAP и удаляю 1 сообщение размером 1 Мб (тем самым оно копируется в .Trash на сервере, а исходное сообщение в cur помечается как удаленное с помощью флага T). Тогда в maildirsize добавляется строчка "-1024000 -1". Вроде все правильно. Почтовый клиент остается открытым.
3. Приходит письмо размером 3 Мб.
4. Поскольку в квоту уже не влезает, это вынудит пересчитать maildirsize полностью. Но поскольку удаленное письмо до сих пор лежит в cur с флагом T, оно учитывается при пересчете квоты и maildirsize обновляется соответственно.
5. Выхожу из почтового клиента. Файл из cur благополучно удаляется. Но теперь maildirsize содержит неправильную информацию о квоте.
Правильно ли, что Exim пересчитывает maildirsize полностью, учитывая сообщения, помеченные как удаленные флагом T?