max-message-size

<transmissions-api>

Наибольший размер запроса, принимаемого Transmissions API
в конфигурации это строкаmax-message-size 100Mвнутри блока <transmissions-api>
То же имя ещё 1:<source><transmissions-api>— часть из них другие настройки, часть та же самая
Предел на запрос, а не на письмо

Умолчание — 100M. Строка ограничивает размер полезной нагрузки запроса к Transmissions API.

Синтаксис строгий: число и обязательный множитель размера — B, K, M или G. Число без множителя MTA не примет. Значение больше 2G — тоже.

Руководство отдельно предупреждает: письма больше 100 МБ могут привести к медленному приёму и медленной доставке из-за возросшего времени обработки. То есть умолчание стоит ровно на границе, за которой вендор сам советует не ходить.

Не путать с max-message-size блока источника: та ограничивает письмо, приходящее по SMTP, эта — запрос, приходящий по HTTP.

Главная ловушка — предел на запрос, а не на письмо. Запрос к API несёт не только тело письма: там же получатели, подставляемые значения, вложения в кодировке. Полезная нагрузка получается заметно больше самого письма, и упереться в предел можно на письме, которое по SMTP прошло бы свободно.

Вторая половина: 100M — это не рекомендация, а граница, за которой руководство обещает медленный приём и медленную доставку. Поднимать её стоит с пониманием этого.

Что делает Хаб. Не пишет: блока Transmissions API в конфигурации нет — подача идёт обычным SMTP.

Предел на письмо Хаб задаёт другой строкой: max-message-size со значением 30M в источниках подачи по адресу — с самой машины и с разрешённых адресов.

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

Что ставить. Считать надо от размера запроса, а не письма:

Значение Когда
100M (умолчание) подходит почти всегда: за этой границей вендор обещает замедление
меньше известно, какие письма подаются, и предел ставится с запасом от их размера
больше вложения велики, и замедление приёма и доставки принимается сознательно

Множитель обязателен, и значение больше 2G MTA отвергнет.

Умолчание 100M, обязательный множитель, потолок 2G и предупреждение о замедлении за 100 МБ — из руководства, § 3.3.20.5. Разбивка случаев наша.
Пример в конфигурации
# предел на полезную нагрузку запроса, а не на само письмо
<transmissions-api>
    max-message-size 100M</transmissions-api>
Множитель обязателен: 100 без буквы MTA не примет. Запрос несёт больше, чем письмо, — получателей, подстановки и вложения в кодировке.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Пишут число без множителя

§ 3.3.20.5

Чем чреватоMTA отвергает значение: множитель обязателен. Конфигурация не применяется целиком, и узел остаётся на прежней.
Как заметитьПроверка конфигурации сообщает об ошибке в этой строке.
Как правильноПисать число с буквой размера — 100M, а не 100.

Поднимают предел, не заметив предупреждения

§ 3.3.20.5

Чем чреватоЗа границей в 100 МБ руководство обещает медленный приём и медленную доставку из-за возросшего времени обработки. Поднятый предел не ускоряет ничего — он лишь разрешает то, что будет медленным.
Как заметитьКрупные письма принимаются, но приём и доставка заметно замедляются.
Как правильноПоднимать предел сознательно и следить за временем обработки, а не за одним фактом приёма.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
max-message-size { N{b|k|m|g} }
Значения
число с обязательным множителем B, K, M или G; не больше 2G
Умолчание
100M § 3.3.20.5
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<transmissions-api>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <transmissions-api> и относится ко входу целиком: блок один на узел, наследования у него нет. Предел на письма, приходящие по SMTP, задаётся отдельно — одноимённой строкой в блоке источника.
Как проверить на узле
Предел видно в конфигурации; проверять его стоит вместе с пределом для SMTP:
grep -n -A3 '^<transmissions-api>' /etc/pmta/config
grep -n 'max-message-size' /etc/pmta/config /etc/pmta/virtualhost.txt
Отсутствие блока означает, что вход не настроен вовсе и предел ни на что не влияет. Разные значения у двух одноимённых строк — норма: они про разные входы.
В Хабе
Управляется
Конфигурации → Лимиты доставки
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подключить платформу отправки