include

<source>

Подключить файл настроек внутри блока источника
в конфигурации это строкаincludeвнутри блока <source>
То же имя ещё 4:<domain>Global<smtp-pattern-list><source><virtual-mta>— часть из них другие настройки, часть та же самая
Настройки источника — отдельным файлом

Форма и правила те же, что на уровне узла: путь, маска или адрес HTTP. Меняется место подстановки — строки читаются как настройки этого блока <source>, а не узла.

Повторять можно — руководство показывает две строки подряд, файл и адрес.

Практический смысл здесь чуть другой, чем на уровне узла. Источники различаются между узлами чаще всего: у каждого свои подсети подачи, свои разрешения. Вынести эту часть в отдельный файл — самый очевидный способ держать общий шаблон и локальные различия порознь.

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

Три формы значения, как и на уровне узла:

Значение Когда
путь к файлу различия узлов вынесены отдельно
маска набор файлов одной строкой
адрес HTTP настройки источников раздаются централизованно

Файл обязан содержать строки, допустимые в <source>. Проверки «то ли это» до применения нет: несоответствие обнаружится ошибкой разбора конфигурации.

Формы значения и требования к адресу — из руководства (§ 3.3.7.74). Замечание про позиционность подстановки — наше.
Пример в конфигурации
# различия узла вынесены из общего шаблона
<source 0/0>
    include /etc/pmta/sourcecfg.txt    include http://10.1.2.3:4000/my/source/config
</source>
Пример руководства: обе формы в одном блоке, и обе действуют. Файл должен содержать строки, допустимые внутри <source>, — подстановка идёт на это место.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Подключают файл не в том контексте

§ 3.3.7.74

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

Дописывают include в конфигурацию, которую собирает Хаб

наш опыт

Чем чреватоХаб перезаписывает свои файлы целиком при каждом применении, и строка исчезает вместе с тем, что подключала.
Как заметитьНастройка перестала работать после очередного применения.
Как правильноЗаводить такие настройки в самом Хабе, а не в результате его работы.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
include <path-or-url>
Значения
путь к файлу, маска или абсолютный адрес http/https без userinfo, строки запроса и якоря
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<source>
Сколько раз
можно повторять
Всё здесь — из руководства, с разделом.
Наследование
Наследования у самой строки нет: это подстановка, а не значение. Подключённые директивы наследуются уже по своим правилам — как настройки <source>, где более узкий блок перекрывает более широкий.
⇄

Связанные директивы

1 связь

Как проверить на узле
Собранных настроек источника MTA не печатает — подключения видно только в самих файлах:
grep -n -A20 '<source' /etc/pmta/config | grep -i 'source\|include'
Если подключённых строк не видно, проверьте путь и то, что файл содержит строки именно источника: подстановка позиционная, и директива из другого контекста здесь будет ошибкой разбора.
В Хабе
Цена ошибки
опасно: последствия переживут откат
Сценарии
Безопасность узла