У нас есть сервер, который отправляет нашу еженедельную новостную рассылку подписчикам. Чтобы такие люди, как Hotmail или Yahoo, не блокировали нас из-за отправки им слишком большого количества одновременных писем, Есть ли способ сгруппировать электронную почту или ограничить скорость исходящих писем с постфикса?
Имейте в виду, я не хочу, чтобы почтовый сервер переставал ставить почту в очередь или принимать новые сообщения. Просто отложите доставку, если на целевой домен / ip-адрес больше 3-4 сообщений или что-то подобное.
Примечание: Мне не нужен дроссель отправителя, как описано в аналогичном вопросе, Вот. Я больше ищу дроссель получателя, но мне так и не удалось узнать, как это сделать с помощью служб PolicyD или Anvil, и мне было интересно, выполнил ли кто-нибудь еще такую задачу.
Вы можете использовать хитрость:
main.cf:
transport_maps = hash:/etc/postfix/transport
deadbeats_destination_concurrency_limit = 50
master.cf:
deadbeats unix - - n - - smtp -o smtp_connect_timeout=5 -o smtp_helo_timeout=5 smtp_connect_timeout=2
transport.cf:
hotmail.com deadbeats:
yahoo.com deadbeats:
earthlink.net deadbeats:
freemail.com.au deadbeats:
Чтобы дополнить сообщение rkthkr, вам нужно будет запустить postmap для файла транспорта (человек транспорт (5))
postmap /etc/postfix/transport.cf
Должен прочесть:
deadbeats unix - - n - - smtp
-o smtp_connect_timeout=5
-o smtp_helo_timeout=5
-o smtp_connect_timeout=2
И вам следует перезапустить Postfix
вы также можете добавить
main.cf
deadbeats_destination_recipient_limit = 5
для 5 получателей на сеанс
Я почти уверен, что rkthr предлагает master.cf из
deadbeats unix - - n - - smtp -o smtp_connect_timeout=5 -o smtp_helo_timeout=5 smtp_connect_timeout=2
имеет параметр smtp_connect_timeout, который по ошибке указан дважды. Если по какой-то причине вы хотите, чтобы он был указан дважды, вам понадобится еще один '-o', как описано в ответе user40991.