GlobalХаб задаёт сам
Строка объявляет имя и привязанный к нему список доменов через запятую. Дальше это имя со знаком доллара подставляется там, где нужен список: в блоке получателя <domain $имя>, в приёме по доменам relay-domain, в объявлении ключей подписи domain-key.
В имени допустимы только буквы, цифры и подчёркивание — руководство оговаривает это прямо.
Смысл прикладной: крупный приёмник обслуживает десятки доменов, и держать их списком в каждом правиле нечитаемо. Один макрос — одно место правки.
Проверять надо не строку макроса, а все места подстановки.
Вторая половина мельче: имя проверяется на буквы, цифры и подчёркивание. Дефис в имени — частая привычка из имён доменов — тут не годится.
Раскладка там ровно та, ради которой макросы и сделаны: строка макроса перечисляет домены приёмника, а следом идёт блок <domain $имя> с его политикой — пределами, повторами, сроком отказа.
Что ставить. Значение — имя и список; правила приходят из назначения:
| Свойство | Почему |
|---|---|
| имя по приёмнику, а не по признаку | список правится вместе с приёмником, а не с задумкой |
| только буквы, цифры, подчёркивание | требование MTA |
| один макрос — один приёмник | иначе правка задевает чужие правила |
Макрос «все крупные» выглядит удобным и оказывается опасным: у приёмников разные политики, и объединять их списком значит лишиться возможности развести.
# так пишет политики Хаб: макрос на приёмника, затем его блок domain-macro mailru mail.ru,bk.ru,inbox.ru,list.ru<domain $mailru> max-errors-per-connection 10 retry-after 30m </domain>
что делают не так и чем это кончается2 ошибки▶
наш опыт
§ 3.3.1.55.4
2 связи
grep -n '^domain-macro' /etc/pmta/config grep -n '\$[a-zA-Z_][a-zA-Z0-9_]*' /etc/pmta/config | head -20
3 статьи
◇Четыре типа значений, на которых написан весь конфигЛогическое, образец домена, регулярное выражение и промежуток времени — определены один раз в § 3.2 и дальше используются всеми директивами.◇Как складывается политика для приёмникаНастройки собираются от самого общего образца к самому точному; порядок блоков в файле не значит ничего.◇Щадящий режим — вторая личность очередиОчередь, которой приёмник начал отказывать, переключается на параллельный набор лимитов, повторов и маршрутов — десять директив, действующих только в этом режиме.