приветствую
чуть меньше чем полностью переработана поддержка ratelimit'ов
в переменной confRATELIMIT можно указывать одно или больше следующих
значений:
NO - не использовать ratelimit'ы
HOST - использовать ratelimit'ы по хостам отправителей
AUTH - использовать ratelimit'ы по учетным записям
аутентифицировавшихся отправителей
MAIL - использовать ratelimit'ы по адресам отправителей
RCPT - использовать ratelimit'ы по адресам получателей
DEBUG - выводить в файл протокола результаты расчет ratelimit'ов
вне зависимости от их превышения
настройки ratelimit'ов по хостам отправителей указываются в файле
ratelimit-host
настройки ratelimit'ов по учетным записям аутентифицировавшихся
отправителей указываются в файле ratelimit-auth
настройки ratelimit'ов по адресам отправителей указываются в файле
ratelimit-mail
настройки ratelimit'ов по адресам получателей указываются в файле
ratelimit-rcpt
во всех файлах настроек ratelimit'ов данные указываются однотипно в виде:
аргумент : лимит : действие : сообщение
где:
аргумент - это адрес хоста отправителя в случае ratelimit-host,
SMTP логин в случае ratelimit-auth, адреса отправителя
и получателя в случае ratelimit-mail и ratelimit-rcpt.
лимит - ограничение в виде "количество / время"
действие - действие, применяемое к письму (может отсутствовать)
сообщение - сообщение SMTP клиенту
адреса хостов можно задавать в виде IP адресов, номеров сетей, имен
хостов, в том числе указанных по маске или в виде регулярно
го выражения.
SMTP логины и адреса отправителей и получателей можно указывать в виде
полных адресов, масок или регулярных выражений.
лимит указывается в виде "количество сообщений / период времени".
возможные действия:
ok - исключение из проверки
warn - вывод предупреждения в файл протокола и
добавление в письмо поля заголовка
reject - отказ в приеме сообщения
deny - синоним для reject
defer - возврат временной ошибки
greylist=X - добавление X баллов к счетчику опционального
грейлистинга
reject=X - добавление X баллов к счетчику опционального
reject'а
delay=zz - задержка на zz секунд перед продолжением
обработки сообщения
pause=zz - синоним delay=zz
по умолчанию применяется действие defer.
при описании действий можно использовать вычисляемые выражения.
пример:
* : 20 / 10m : defer delay=${eval:${sg{$sender_rate}{\N[\.].*$\N}{}} -
$sender_rate_limit} : Try again later
в качестве сообщения SMTP клиенту указывается не столько само сообщение,
сколько его уточнение
в уточнении сообщения SMTP клиенту можно использовать вычисляемые
выражения, например в нем можно использовать переменные $sender_rate,
$sender_rate_limit и $sender_rate_period
по умолчанию SMTP клиенту возвращаются следующие сообщения:
Sender host rate exceeds limit
Sender rate exceeds limit
Recipient rate exceeds limit
далее следует уточнение сообщения. если оно отсутсвует, то используется
фраза "Try again later"
--
Best wishes Victor Ustugov mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 371808614 JID: corvax_at_nb на jabber.corvax.kiev.ua
nic-handle: CRV-UANIC