domain

<virtual-mta-pool>

Блок правил приёмника, который достаётся всем участникам пула
в конфигурации это строкаdomainвнутри блока <virtual-mta-pool>
То же имя ещё 1:<address-list><virtual-mta-pool>— часть из них другие настройки, часть та же самая
Правила приёмника, написанные один раз на всю группу

Обычный блок правил получателя — темп, потоки, повторы, TLS, — только написанный в пуле. Достаётся он каждому участнику.

Порядок наследования руководство называет прямо. Блок получателя внутри адреса отправки наследует сначала от пула, потом от узла. То есть уровней три, и чем ближе к письму, тем сильнее: собственный блок участника перекрывает пуловый, пуловый — общий.

И называет ошибку. Адрес отправки не может состоять в двух пулах, у которых есть такие блоки: источников наследования оказалось бы два, и разрешить это нечем. Конфигурация с такой парой недопустима.

Ради этого блока пул и стоит заводить не только для раздачи. Волна прогрева из восьми адресов с одинаковыми правилами приёмников — это либо восемь копий, которые со временем разъедутся, либо один блок здесь.

Главная ловушка — второй пул. Запрет срабатывает не там, где его создают: адрес добавляют во второй пул ради раздачи, а недопустимой оказывается вся конфигурация — из-за блоков правил, написанных когда-то в обоих. Ошибка вылезет на применении и укажет на пул, который последним не трогали.
Что делает Хаб. Не пишет: правила приёмников он выдаёт каждому адресу отправки отдельно, а пул использует только как список участников. Для волны прогрева это означает повторение одного и того же блока по числу адресов — больше текста, больше мест, где значения расходятся, и труднее читаемая разница между версиями конфигурации. Перенести общие правила на уровень пула — понятная задача для конфигуратора, и делать это надо вместе с проверкой «участник в одном пуле с правилами».
Рекомендуемые значения

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

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

И ограничение: участник с такими правилами может состоять только в одном пуле, где они есть.

Порядок наследования и запрет на два пула — из руководства (§ 3.3.13.2), прямыми формулировками. Разбивка по уровням — наша.
Пример в конфигурации
# правило приёмника задано один раз на всю волну прогрева
<virtual-mta-pool pool>
    <domain yahoo.com>        max-msg-rate 10/h
    </domain>
    virtual-mta mta1
    virtual-mta mta2
</virtual-mta-pool>
Пример руководства: очереди yahoo.com/mta1 и yahoo.com/mta2 обе получат 10/h. Собственный блок <domain yahoo.com> у любого из участников это значение перекроет.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Держат адрес отправки в двух пулах с правилами

§ 3.3.13.2

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

Ищут причину значения не на том уровне

§ 3.3.13.2

Чем чреватоУровней три, и в конфигурации они лежат в разных местах файла. Значение, «не применившееся» из пула, обычно перекрыто собственным блоком участника — но выглядит это как игнорирование настройки.
Как заметитьВ пуле одно значение, в очереди участника другое, ошибок нет.
Как правильноСмотреть очередь участника, а не конфигурацию: там видно получившееся. Дальше искать блок того же получателя у самого адреса отправки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
domain <block>
Значения
имя получателя или образец, как у обычного блока правил
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<virtual-mta-pool>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Блок пула — средний из трёх уровней. Блок получателя внутри адреса отправки наследует сначала от пула, затем от узла; собственная строка участника перекрывает пуловую. Отсюда и запрет на два пула с такими блоками: два средних уровня для одного участника разрешить нечем, и руководство называет это ошибкой прямо.
Как проверить на узле
По конфигурации слияние не читается — смотреть надо на очередь участника:
pmta show queues yahoo.com/mta1
В очереди действуют слитые правила. Если пуловое значение не видно, ищите у самого участника блок того же получателя — он перекрывает пуловый и делает это молча.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Настроить темп под провайдера · Разделение отправителей