enable-inline-seeding

Global

Включить автоматическое засеивание и назвать субсчёт
в конфигурации это строкаenable-inline-seeding true на глобальном уровне, если блок настроек есть, иначе falseвнутри блока Global
Три области, две тонкости и два предупреждения

Умолчание зависит от конфигурации: на уровне узла — true, если блок <inline-seeding> объявлен, и false, если нет.

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

Значение может нести номер субсчёта — true,subaccount=N. И здесь тонкость, которую руководство называет прямо: true без субсчёта не наследует субсчёт с вышестоящего уровня, а обнуляет его. Чтобы унаследовать, строку не пишут вовсе.

Два предупреждения вендора отдельно. Ключ подписи в заголовке письма поддержан не полностью: письма засева могут уйти неподписанными либо подписанными другим ключом. И домены отправки не из латиницы тоже поддержаны не полностью.

Устройство самого механизма — inline-seeding.

Главная ловушка — true обнуляет субсчёт, а не наследует его. Поведение выглядит опечаткой, пока не прочитаешь: строка true на уровне адреса отправки при заданном субсчёте на уровне узла означает «субсчёта нет», а не «взять сверху».

Правило простое и противоестественное: чтобы унаследовать, строку не пишут. Написали — придётся повторять и субсчёт.

Вторая половина: то же самое устройство у соседней строки выгрузки событий, enable-signals. Ошибиться легко дважды, и обе ошибки молчаливые.

Что делает Хаб. Не пишет: засеиванием вендора мы не пользуемся, блока <inline-seeding> в конфигурации нет — значит и умолчание здесь false.

Задача, которую механизм решает, у нас отложена: контрольные ящики требуют опроса по IMAP, а он с одного адреса кончается блокировкой ящиков. Отсюда и отложенное решение про прокси.

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

Что ставить. Выбор из трёх, и средний — ловушка:

Значение Когда
не писать нужно унаследовать вышестоящее значение вместе с субсчётом
true,subaccount=N этот уровень работает со своим субсчётом
false засеивание здесь выключено

Просто true — четвёртый вариант, и он означает «включено, субсчёта нет». Это редко бывает тем, чего хотели: если субсчёт задан выше, он пропадёт.

Три области, правило наследования с приоритетом пула, обнуление субсчёта значением true и оба предупреждения (ключ подписи в заголовке, домены не из латиницы) — из руководства, § 11.2.2.1. Умолчание по наличию блока — оттуда же.
Пример в конфигурации
# чтобы унаследовать субсчёт — строку не пишут вовсе
<virtual-mta shop-example-com>
    enable-inline-seeding true,subaccount=123</virtual-mta>
Без части с субсчётом та же строка означала бы «включено, субсчёта нет» — и обнулила бы номер, заданный на уровне узла или пула.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Пишут true, рассчитывая унаследовать субсчёт

§ 11.2.2.1

Чем чреватоЗначение без части с субсчётом означает «субсчёта нет». Номер, заданный на уровне узла или пула, обнуляется, и события засева уходят не туда.
Как заметитьВ отчётах службы засев числится за основным счётом, а не за субсчётом.
Как правильноЛибо не писать строку вовсе — тогда унаследуется всё, — либо повторить субсчёт явно.

Полагаются на ключ подписи из заголовка письма

§ 11.2.2.1

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

Ждут наследования от узла, задав значение на пуле

§ 11.2.2.1

Чем чреватоПул старше узла. Значение, заданное на пуле, перекрывает общее, и адреса этого пула о настройке узла не узнают.
Как заметитьЧасть адресов отправки ведёт себя не так, как задано на уровне узла.
Как правильноСмотреть все три области сразу: адрес, его пул и узел.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
enable-inline-seeding { true | false } [subaccount N]
Значения
true[,subaccount=N] | false
Умолчание
true на глобальном уровне, если блок настроек есть, иначе false § 11.2.2.1
Применение
нужен перезапуск сервиса
Очередь
затронет и то, что уже стоит в очереди
Где писать
Global, <virtual-mta-pool>, <virtual-mta>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива действует в трёх областях: узел, пул адресов отправки и отдельный адрес. Адрес наследует от обоих, и пул старше узла. Но наследование ломается, если написать true без субсчёта: тогда субсчёт обнуляется, а не берётся сверху.
Как проверить на узле
Смотреть надо все три области сразу — значение складывается из них:
grep -n 'enable-inline-seeding\|^<inline-seeding>' /etc/pmta/config /etc/pmta/virtualhost.txt
Отсутствие строк означает умолчание по наличию блока засеивания: есть блок — включено, нет блока — выключено. Строка true без субсчёта на любом уровне обнуляет номер, заданный выше.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Засеивание и контрольные ящики