plugin {
quota_rule = *:storage=10M
quota = maildir:User quota
quota_rule2 = Junk:ignore
quota_rule3 = Trash:storage=+100M
quota_warning = storage=50%% quota-warning 50 %u
quota_exceeded = storage=100%% quota-exceeded 100 %u
}
plugin {
quota_warning = storage=50%% quota-warning 50 %u
quota_exceeded = storage=100%% quota-exceeded 100 %u
}
service quota-warning {
executable = script /root/bin/quota-warning.sh
user = root
unix_listener quota-warning {
user = vmail
mode = 0666
}
}
service quota-exceeded {
executable = script /root/bin/quota-exceeded.sh
user = root
unix_listener quota-exceeded {
user = vmail
mode = 0666
}
}
Я отправил электронное письмо с 8 МБ (ограничение составляет 10 МБ), но предупреждение о квоте выдается, когда я удаляю это сообщение (перемещаю его в корзину) вместо выполнения превышения квоты.
cat /root/bin/quota-warning.sh
touch /tmp/quota-warning-executed
cat /root/bin/quota-exceeded.sh
touch /tmp/quota-exceeded-executed
Вам необходимо настроить исключение квот для Junk
папка и накладные расходы для Trash
:
plugin {
quota = maildir:User quota
quota_rule = Junk:ignore
quota_rule2 = Trash:storage=+100M
quota_warning = storage=50%% quota-warning 50 %u
quota_exceeded = storage=100%% quota-exceeded 100 %u
}
Как заявил dovecot
wiki, чтобы избежать предупреждения о квоте при переходе на Trash
,
Вы можете создать отдельное правило квот, давая для почтового ящика корзины несколько более высокий предел квоты (но не неограниченный).
Это сделано потому, что переход на Trash
это двухэтапная процедура (копирование + удаление). На короткое время у вас есть две копии одного и того же сообщения, и обе они учитываются плагином квот. Если Trash
есть некоторые накладные расходы, то свежее скопированное сообщение не превышает основного лимита. Обратитесь к вики-странице dovecot для получения дополнительной информации: https://wiki.dovecot.org/Quota