Вопрос или проблема
Мы отправляем довольно большое количество электронных писем нашим клиентам каждый месяц с помощью Postfix. Большой процент из них имеют почту на @example.com. Но каждый месяц мы сталкиваемся с проблемами доставки всех сообщений из-за временной блокировки (greylisting).
Example.com предоставил нам конкретные настройки для каждого 5-минутного окна, чтобы избежать временной блокировки:
Максимальные суммарные лимиты на каждые 5 минут для домена example.com
- 300 подключений
- 100 000 сообщений
- общий размер 180 МБ
Мы определенно не отправляем 100 тысяч сообщений, поэтому количество подключений за это 5-минутное окно кажется основной проблемой. Может ли кто-то помочь с конкретными настройками Postfix, чтобы соответствовать указанным выше критериям только для подключений к example.com?
Эти значения можно редактировать в файле main.cf Postfix –
initial_destination_concurrency параметр (по умолчанию: 2) контролирует, сколько сообщений первоначально отправляется на одно и то же направление перед адаптацией конкуренции доставки. Конечно, эта настройка эффективна только до тех пор, пока она не превышает лимит процесса и лимит конкуренции для конкретного канала передачи почты.
default_destination_concurrency_limit параметр (по умолчанию: 10) контролирует, сколько сообщений может быть отправлено на одно и то же направление одновременно. Вы можете изменить эту настройку для конкретных каналов доставки (локальный, smtp, uucp и т.д.). В файле main.cf рекомендуется следующее:
default_destination_concurrency_limit = 10
Лимит конкуренции в 10 для доставки SMTP, по-видимому, достаточен, чтобы заметно загрузить систему, не приводя ее к сбоям. Будьте осторожны, изменяя это на гораздо большее число.
Больше информации здесь –
Подсчет размера почты в Postfix
Как ограничить скорость исходящих SMTP подключений в Postfix
Ответ или решение
Конечно, давайте детально рассмотрим, как настроить Postfix для ограничения исходящих соединений, количества сообщений и их общего размера для домена example.com в рамках пятиминутного интервала. Это поможет минимизировать риски попадания в грейлист.
Шаг 1: Настройка количества соединений
Для начала нам необходимо ограничить количество соединений, что можно сделать с помощью Postfix параметра transport_destination_concurrency_limit
. В файле main.cf
добавьте или измените следующую строку, чтобы установить предел соединений для домена example.com:
transport_maps = hash:/etc/postfix/transport
Создайте файл /etc/postfix/transport
, добавив в него:
example.com slow_delivery:
Затем создайте файл /etc/postfix/master.cf
или измените его, добавив транспорт для example.com:
slow_delivery unix - - n - - smtp
-o smtp_destination_concurrency_limit=60
Здесь smtp_destination_concurrency_limit=60
ограничивает количество соединений к домену example.com. Измените значение по необходимости, основываясь на вашей стратегии отправки.
Шаг 2: Ограничение количества сообщений
Для ограничения числа сообщений за пятиминутный интервал можно использовать планировщик задач для регулирования очереди отправки. Используйте скрипты, которые проверяют размер очереди и при необходимости ограничивают подачу новых сообщений в систему. Это скорее организационный момент, так как Postfix сам по себе не предоставляет прямых механизмов для динамического ограничения числа отправляемых сообщений за фиксированный временной интервал без серьезных изменений инфраструктуры.
Шаг 3: Ограничение по размеру
Чтобы контролировать общий размер отправляемых данных, вы можете использовать следующие параметры:
message_size_limit = <максимальный размер одного сообщения в байтах>
Убедитесь, что общий размер отправленных сообщений за 5 минут не превышает 180 MB, путем регулировки порогов за один период.
Заключение: Мониторинг и тестирование
Кроме того, важно постоянно мониторить поведение Postfix и получать отчеты об отправке, инкапсулированные в Greylist возвраты. Убедитесь, что политики, введенные вами, действительно работают и позволяют достичь значимых улучшений в доставке e-mail.
Используйте инструменты мониторинга, такие как Munin или Zabbix, для отслеживания числа соединений и количества отправленных сообщений, чтобы своевременно корректировать настройки.
Эти практические шаги помогут вам оптимизировать работу Postfix в соответствии с требованиями example.com и повысить надежность доставки ваших писем.