Добрый день уважаемые гуру. Стоит exim 4 на фре. Появилась, на мой взгляд нелегкая задача и вот какая:
Есть в сети уникалы, которые иногда перенаправляют почту на другие ящики...так вот они берут все сообщения (10-50) и кидают на определенные ящики в инете. Такой расклад не устраивает, ибо тупо спам получается. Можно ли настроить рейтлимиты экзима так, чтобы все исходящие письма с сервера (внутренние и внешние) можно было отправлять за раз около 5, а если больше, то последующие с интервалом 1 минута????. буду очень благодарен за предоставленные разъяснения и опции.
Exim, очередь и ratelimit
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
- Laa
- ст. лейтенант
- Сообщения: 1032
- Зарегистрирован: 2008-02-21 18:25:33
- Откуда: Украина, Россия
Re: Exim, очередь и ratelimit
Привет!
В транспорте remote_smtp покрути опцию max_rcpt и connection_max_messages.
В транспорте remote_smtp покрути опцию max_rcpt и connection_max_messages.
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!
-
- рядовой
- Сообщения: 16
- Зарегистрирован: 2011-07-22 0:18:08
Re: Exim, очередь и ratelimit
Недавно решал примерно такую же задачу.
Получилось так: перед роутером внешней отправки вставил роутер с драйвером queryprogram, который вызывает внешний скрипт. Скрипт проверяет счетчик отправленных писем, если меньше указанного значения, то счетчик увеличивается на 1, а exim-у возвращается PASS. Если счетчик равен или больше, то exim-у возвращается DEFER, в результате письмо остается в очереди на повторную доставку. Через заданный период времени, счетчик обнуляется cron-ом. Дальше, через интервал заданный ключом -q<time>, запускается обработчик очереди и пробует отправить письма, для которых разрешен повтор.
Получилось так: перед роутером внешней отправки вставил роутер с драйвером queryprogram, который вызывает внешний скрипт. Скрипт проверяет счетчик отправленных писем, если меньше указанного значения, то счетчик увеличивается на 1, а exim-у возвращается PASS. Если счетчик равен или больше, то exim-у возвращается DEFER, в результате письмо остается в очереди на повторную доставку. Через заданный период времени, счетчик обнуляется cron-ом. Дальше, через интервал заданный ключом -q<time>, запускается обработчик очереди и пробует отправить письма, для которых разрешен повтор.
-
- лейтенант
- Сообщения: 693
- Зарегистрирован: 2008-10-02 20:49:21
Re: Exim, очередь и ratelimit
Если вам не сложно - поделитесь скриптом или расскажите как в драйвере smtp примерно прописать рейтлимиты на исх. почту, а то я щас другой проект ворочу, на почтовик совсем времени нет думать. Заранее спасибо. Хотелось бы еще увидеть исключение на отправляемые хосты (то есть чтобы не на все исх действовал данный рейтлимит)
-
- рядовой
- Сообщения: 16
- Зарегистрирован: 2011-07-22 0:18:08
Re: Exim, очередь и ratelimit
Не до конца уверен, но вроде рейтлимиты срабатывают только на вход, как их применить (и можно ли) на выход я понять не смог.
Скрипт (chklimit.sh):
qcount_file - файл в который сохраняется счетчик.
qlimit - макс. кол-во писем за период времени.
После DEFER, текст который будет писаться в журнал.
Роутер:
Собственно, в domains перечисляется на какие домены срабатывает роутер. Вероятно, тоже самое можно сделать и для хостов. Сразу за этим роутером, прописан роутер для отправки в интернет.
Скрипт (chklimit.sh):
Код: Выделить всё
#!/bin/sh
PATH=/bin:/usr/local/sbin
qcount_file=/var/spool/exim/qcount
qlimit=48
# read counter from file
if [ -s $qcount_file ]
then
qcount=$(cat $qcount_file)
else
qcount=0
fi
# check to limit
if [ $qcount -ge $qlimit ]
then
echo "DEFER To smarthost limit reached"
else
# save counter to file
echo $(($qcount + 1)) > $qcount_file
echo "PASS"
fi
qlimit - макс. кол-во писем за период времени.
После DEFER, текст который будет писаться в журнал.
Роутер:
Код: Выделить всё
checklimit:
driver = queryprogram
domains = ! +local_domains
command = /usr/local/etc/chklimit.sh
command_user = mailnull
command_group = mail
Собственно, в domains перечисляется на какие домены срабатывает роутер. Вероятно, тоже самое можно сделать и для хостов. Сразу за этим роутером, прописан роутер для отправки в интернет.