Я использую Postfix для отправки около 20 000 - 30 000 писем в день. Для сообщений, не попавших в спам, сценарий запускается с перерывом в 1 секунду при каждой отправке электронного письма. В итоге на электронную почту отправляют около 5 - 8 часов.
Когда на сервере возникает ошибка (например, выходит из строя сеть), скрипт все еще работает, а Postfix ставит электронные письма в очередь. Когда сетевое соединение восстанавливается, Postfix пытается отправить неотправленное электронное письмо сразу, около 30 электронных писем в секунду.
Есть ли какой-либо параметр для Postfix, который позволил бы замедлить отправку электронных писем в очереди?
Существует множество опций, позволяющих точно настроить очереди, но многое зависит от того, куда отправляются эти письма.
Некоторые варианты, например default_destination_concurrency_limit
который по умолчанию равен 20, будет учитываться, когда электронное письмо отправляется одному адресату. В queue_run_delay
это время, которое требуется серверу перед повторным сканированием отложенного каталога на предмет попыток повторной отправки и настройкой minimal_backof_time
и maximal_backoff_time
(время ожидания постфикса перед повторной попыткой), если оно будет больше, также может замедлить количество писем, которые сервер пытается отправить, когда сеть возвращается.
Вам нужно быть осторожным, так как многие из этих значений настроены для предотвращения переполнения очередей в случае возникновения проблем. На сайте postfix есть очень хорошая документация на тема.