Назад | Перейти на главную страницу

Постфиксное смещение / ограничение скорости исходящей почты

У нас есть сервер, который отправляет нашу еженедельную новостную рассылку подписчикам. Чтобы такие люди, как 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.