spool-max-recipients

Global

Потолок числа получателей по всем каталогам спула сразу
в конфигурации это строкаspool-max-recipients autoвнутри блока Global
Предохранитель от того, что узел не вывезет

Умолчание — auto: MTA считает потолок сам, по ресурсам машины.

Строка ограничивает число получателей сразу по всем каталогам спула. Назначение руководство называет прямо: не дать перегрузить узел большим числом писем, чем он способен обработать.

Сверх потолка подача отбивается временной ошибкой — то есть подающая сторона узнаёт об этом сразу и может повторить позже.

Считаются именно получатели, а не письма: письмо на тысячу адресов занимает тысячу мест.

Главная ловушка — считать письмами. Потолок в миллион выглядит огромным, пока рассылка не пойдёт письмами на много адресов сразу. Тысяча писем по тысяче получателей — это уже миллион, и подача встанет на середине.

Вторая половина: умолчание auto считается по ресурсам машины, а не по вашим планам. На маленьком узле оно окажется меньше ожидаемого, и упрётесь вы в него внезапно — в разгар рассылки, временными отказами на подаче.

Что делает Хаб. Не пишет — остаётся auto, то есть потолок считается по ресурсам узла.

Для прогрева это безразлично: он подаёт письма по одному получателю и небольшими пачками, до потолка ему далеко. Строка стала бы важной на узле, куда подаёт платформа рассылки большими пачками.

Рекомендуемые значения

Что ставить. Число считают от объёма рассылки, а не от размера диска:

Значение Когда
auto (умолчание) объёмы невелики либо неизвестны — MTA посчитает по машине
явное число известен наибольший размер рассылки, и он должен помещаться целиком

Явное число стоит брать с запасом на повторы: письма к проблемным приёмникам живут в очереди днями и всё это время занимают места.

Умолчание auto, подсчёт по ресурсам машины, временный отказ сверх потолка и счёт по получателям — из руководства, § 3.3.1.8. Совет о запасе на повторы наш.
Пример в конфигурации
# наибольшая рассылка должна помещаться целиком, с запасом на повторы
spool-max-recipients 10000000
Считаются получатели, а не письма: рассылка из тысячи писем по тысяче адресов займёт миллион мест.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Считают потолок письмами, а не получателями

наш опыт

Чем чреватоРассылка письмами на много адресов исчерпывает потолок в тысячу раз быстрее ожидаемого. Подача встаёт временными отказами посреди отправки.
Как заметитьПодача отбивается временной ошибкой, хотя писем в очереди немного.
Как правильноПересчитать потолок в получателях: письмо на тысячу адресов занимает тысячу мест.

Полагаются на автоматический подсчёт при большой рассылке

§ 3.3.1.8

Чем чреватоПотолок считается по ресурсам машины, а не по вашим планам. На небольшом узле он окажется меньше ожидаемого, и упрётесь вы в него в разгар рассылки.
Как заметитьВременные отказы на подаче начинаются при определённом объёме и повторяются от рассылки к рассылке.
Как правильноЗадать число явно, посчитав от наибольшей рассылки с запасом на повторы.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
spool-max-recipients { N | auto }
Значения
целое число получателей или auto
Умолчание
auto § 3.3.1.8
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива пишется в корне файла конфигурации и действует на весь узел сразу: потолок общий по всем каталогам спула, разделить его между ними нельзя.
Как проверить на узле
Потолок видно в конфигурации, занятое — в состоянии узла:
grep -n 'spool-max-recipients\|max-memory-usage-percent' /etc/pmta/config
pmta show status | head -20
Отсутствие строки означает auto — потолок считает MTA, и увидеть его можно только по поведению: временные отказы на подаче при непустой очереди означают, что упёрлись именно в него.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Планирование мощности · Разобрать зависшую очередь