# # Использование ratelimit'ов # # NO - не использовать ratelimit'ы # HOST - использовать ratelimit'ы по хостам отправителей # AUTH - использовать ratelimit'ы по учетным записям аутентифицировавшихся отправителей # MAIL - использовать ratelimit'ы по адресам отправителей # RCPT - использовать ratelimit'ы по адресам получателей # DEBUG - выводить в файл протокола результаты расчет ratelimit'ов вне зависимости от их превышения # define(`confRATELIMIT', `NO')# # возможно одновременное использование нескольких значений # # настройки 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" # # *@domain.tld : 10 / 5m : defer : Try again later # admin@domain2.tld : 200 / 1d : defer : This recipient is not allowed to receive more than 200 messages in 1 day. Try again tomorrow. # *@domain2.tld : 100 / 1d : defer : This recipient is not allowed to receive more than 100 messages in 1 day. Try again tomorrow. #