Страница 1 из 1

Задачка с Exim ratelimit

Добавлено: 2012-07-02 12:47:22
Raven_kg
Доброго всем дня! Есть сервер, нужно было прикрутить к нему ratelimit со значением лимита выбираемым из базы. Прикрутил в acl_check_rcpt следующее:

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

...
# ratelimits
  warn    authenticated   = *
          ratelimit       = ${lookup pgsql{SELECT ratelimit FROM mailbox WHERE username='${quote_pgsql:$authenticated_id}' LIMIT 1}} / 1h / strict / $authenticated_id
          log_message     = Sender rate overlimit - $sender_rate / $sender_rate_period / $authenticated_id 

  deny    authenticated   = *
          ratelimit       = ${lookup pgsql{SELECT ratelimit FROM mailbox WHERE username='${quote_pgsql:$authenticated_id}' LIMIT 1}} / 1h / strict / $authenticated_id
          log_message     = Sender rate overlimit - $sender_rate / $sender_rate_period / $authenticated_id 
# ratelimits

  require verify        = sender
...
стало блокировать всю отправляемую почту.

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

2012-07-02 15:23:28 H=127.0.0.1 (localhost.localdomain) [192.168.50.1] I=[192.168.50.10]:25 Warning: Sender rate overlimit - 1.0 / 1h / domain1.tld
2012-07-02 15:23:28 H=127.0.0.1 (localhost.localdomain) [192.168.50.1] I=[192.168.50.10]:25 F=<raven_kg@domain1.tld> rejected RCPT <user@mail.ru>: Sender rate overlimit - 1.0 / 1h / raven_kg@domain1.tld
2012-07-02 15:26:14 H=127.0.0.1 (localhost.localdomain) [192.168.50.1] I=[192.168.50.10]:25 Warning: Sender rate overlimit - 1.9 / 1h / raven_kg@domain1.tld
2012-07-02 15:26:14 H=127.0.0.1 (localhost.localdomain) [192.168.50.1] I=[192.168.50.10]:25 F=<raven_kg@domain1.tld> rejected RCPT <user@mail.ru>: Sender rate overlimit - 1.9 / 1h / raven_kg@domain1.tld
2012-07-02 15:26:53 H=127.0.0.1 (localhost.localdomain) [192.168.50.1] I=[192.168.50.10]:25 Warning: Sender rate overlimit - 5.3  / 1h / raven_kg@domain1.tld
2012-07-02 15:26:53 H=127.0.0.1 (localhost.localdomain) [192.168.50.1] I=[192.168.50.10]:25 F=<raven_kg@domain1.tld> rejected RCPT <user@mail.ru>: Sender rate overlimit - 5.3  / 1h / raven_kg@domain1.tld
2012-07-02 15:27:23 H=127.0.0.1 (localhost.localdomain) [192.168.50.1] I=[192.168.50.10]:25 Warning: Sender rate overlimit - 6.4 / 1h / raven_kg@domain1.tld
2012-07-02 15:27:23 H=127.0.0.1 (localhost.localdomain) [192.168.50.1] I=[192.168.50.10]:25 F=<raven_kg@domain1.tld> rejected RCPT <user@mail.ru>: Sender rate overlimit - 6.4 / 1h / raven_kg@domain1.tld
Сделал так:

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

  warn    authenticated   = *
          ratelimit       = 60 / 1h / strict / $authenticated_id
          log_message     = Sender rate overlimit - $sender_rate / $sender_rate_period / $authenticated_id 

  deny    authenticated   = *
          ratelimit       = 60 / 1h / strict / $authenticated_id
          log_message     = Sender rate overlimit - $sender_rate / $sender_rate_period / $authenticated_id 
Все работает. Вопрос - почему? Таблица mailbox содержит корректные значения ratelimit для пользователей, username - корректные email.

Re: Задачка с Exim ratelimit

Добавлено: 2012-07-05 10:26:06
Alex Keda
запросы надо смотреть

Re: Задачка с Exim ratelimit

Добавлено: 2012-07-05 12:38:13
schizoid
включите дебаг и посмотрите какой sql он формирует