EXIM mail rate
Версия от 23:27, 19 января 2016; Sol (обсуждение | вклад)
Ограничение количества писем в единицу времени в Exim
В файле конфигурации почтового сервера Exim необходимо настроить директиву следующим образом
acl_not_smtp = acl_not_smtp begin acl acl_not_smtp: deny message = Sender rate overlimit - $sender_rate / $sender_rate_period ratelimit = 50 / 1h / leaky accept acl_check_rcpt: deny message = Sender rate SMTP overlimit - $sender_rate / $sender_rate_period ratelimit = 100 / 1h / leaky accept hosts = net-lsearch;/etc/exim/whitelist
В итоге выставляется ограничение в 50 писем в час для почты отправленной не по SMTP (например через PHP mail) и в 100 писем для отправки через SMTP. В файле /etc/exim/whitelist создается белый список хостов на которые лимит не действует.
Еще один рецепт
# Рубаем баунсы от клиентов до двух в час (если закрыть, аутглюку станет худо) deny condition = ${if eq{$sender_address}{}{yes}{no}} domains = !+local_domains hosts = +relay_from_hosts ratelimit = 2 / 1h / per_mail / strict / $sender_address message = Too many bounces from you! Ask at [email protected]. # Рубаем тех кто превысил заданную норму сообщений в час - клиентов deny message = Sender rate exceeds $sender_rate_limit messages per $sender_rate_period for $sender_host_address More slowly, try later or complain [email protected]. hosts = +relay_from_hosts ratelimit = 100 / 1h / per_mail / leaky / $sender_address # Рубаем по (в частности, если сообщение посылается локально, то содержит имя пользователя) deny message = Sender rate exceeds $sender_rate_limit messages per $sender_rate_period for More slowly, try later or complain [email protected]. hosts = +relay_from_hosts ratelimit = 100 / 1h / per_mail / leaky / $authenticated_id deny message = Sender rate exceeds $sender_rate_limit messages per $sender_rate_period for More slowly, try later or complain [email protected]. hosts = +relay_from_hosts ratelimit = 100 / 1h / per_mail / leaky / $sender_host_authenticated # Рубаем тех кто превысил заданную норму сообщений в час - для остальных deny message = Sender rate exceeds $sender_rate_limit messages per $sender_rate_period for $sender_host_address More slowly, try later or complain [email protected]. hosts = * : !+mine : !+relay_from_hosts ratelimit = 100 / 1h / per_conn / leaky / $sender_address accept # Рубаем тех кто превысил заданную норму сообщений в час - для остальных deny message = Sender rate exceeds $sender_rate_limit messages per $sender_rate_period for $sender_host_address More slowly, try later or complain [email protected]. hosts = * : !+mine : !+relay_from_hosts ratelimit = 100 / 1h / per_conn / leaky / $authenticated_id deny message = Sender rate exceeds $sender_rate_limit messages per $sender_rate_period for $sender_host_address More slowly, try later or complain [email protected]. hosts = * : !+mine : !+relay_from_hosts ratelimit = 100 / 1h / per_conn / leaky / $sender_host_authenticated