Exim 4.7: не срабатывает квота

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
fakeroot
проходил мимо

Exim 4.7: не срабатывает квота

Непрочитанное сообщение fakeroot » 2013-09-20 11:31:14

Помогите, пожалуйста, найти ошибку в конфиге с квотированием.

Требуется реализовать два вида квоты: квота на ящик и общая квота на домен. Квота на ящик – обычная квота из файла maildirsize. Квота на домен – задана в mysql-таблице domains, в поле quota. Суммарный текущий размер почты всех ящиков хранится в поле size, также в таблице domains.

Квота на ящик работает корректно, а раутер с квотой на домен (virtual_domain_quota_defer) по какой то неведомой причине не срабатывает ((

Сконфигурено всё следующим образом (конфиг, в целом, доработан по статье на сайте):

Код: Выделить всё

# Определяем квоту для ящика
GET_QUOTA=${lookup mysql{SELECT quota FROM users \
           WHERE login='${local_part}' AND domain='${domain}'}{${value}M}}

MAILDIR_SIZE=${eval:${sg{${sg{${readfile{/var/exim/$domain/$local_part/maildirsize} {\n}}}{\N^.+?\n\N}{}}}{\N(?s)\s+-?\d+\n\N}{+}}0+500K}

# Определяем квоту для домена
GET_DOMAIN_QUOTA=${lookup mysql{SELECT quota FROM domains WHERE domain='${domain}'}{$value}fail}
# Текущий суммарный размер всех ящиков в домене
DOMAIN_SIZE=${lookup mysql{SELECT size FROM domains WHERE domain='${domain}'}{$value}fail}
Определения раутеров:

Код: Выделить всё

virtual_user_quota_defer:
  driver          = redirect
  domains         = +local_domains
  condition       = ${if and{\
                    {exists{/var/mail/$domain/$local_part}}\
                    {exists{/var/mail/$domain/$local_part/maildirsize}}\
                    {>{GET_QUOTA}{0}}\
                    {>={MAILDIR_SIZE}{GET_QUOTA}}\
                    } }
  data            = :fail: Over quota!
  verify_sender = false
  allow_fail

# Квота для домена (не срабатывает!)
virtual_domain_quota_defer:
  driver          = redirect
  domains         = +local_domains
  condition       = ${if and{\
                    {>{GET_DOMAIN_QUOTA}{0}}\
                    {>={DOMAIN_SIZE}{GET_DOMAIN_QUOTA}}\
                    } }
  data            = :fail: Over quota for domain!
  verify_sender = false
  allow_fail

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim 4.7: не срабатывает квота

Непрочитанное сообщение Alex Keda » 2014-01-30 22:50:47

а в табличку-то размеры всех ящиков кладёте хоть?
--
вообще, по -d+all такие вещщи просто сказочно дебажатся
Убей их всех! Бог потом рассортирует...