address-file

<address-list>

Адреса списка из отдельного файла
в конфигурации это строкаaddress-fileвнутри блока <address-list>
Длинный список — отдельным файлом

Строка называет файл; каждая его строка становится записью списка. Допустимы две формы — полный адрес и локальная часть без домена, то есть ровно то же, что понимает address, кроме образцов.

Зачем. Список на сотни строк не разбухает в конфигурации, правится отдельно от неё и может обновляться внешним процессом.

Локальная часть в файле значит то же, что и в конфигурации — имя ящика во всех доменах. Ошибиться здесь легче: в файле строки короткие и однообразные, и разница между foo и foo@bar.com теряется.

Главная ловушка — адреса лежат в открытом виде. Файл читают все, кто имеет доступ к узлу, и он попадает в резервные копии наравне с конфигурацией. Для чужого списка подавления это выгрузка чужой базы; там, где это важно, есть hashed-address-file.
Что делает Хаб. Не пишет: подавление у нас работает до узла, своим списком в базе. Если списки на узле когда-нибудь понадобятся, форма из файла — правильная: конфигурацию Хаб перезаписывает целиком при каждом применении, и держать в ней меняющийся список адресов было бы неудобно.
Рекомендуемые значения

Значение — путь к файлу. Что учесть при выборе формы:

Форма Когда Чем платите
address в конфигурации десяток записей конфигурация растёт
этот файл сотни записей адреса в открытом виде
hashed-address-file сотни записей, которые нельзя показывать список не прочитать и вам

Про потолок. Вендор не советует заводить в одном списке подавления больше пятисот образцов. Образцов файл не принимает, так что предел касается строк address с образцами в том же списке, а не записей файла.

Форма записи в файле — из руководства (§ 3.3.5.3), потолок в 500 — из § 11.15. Замечание про права на файл — наше.
Пример в конфигурации
# список ведётся отдельно от конфигурации
<address-list foo>
    address-file /etc/pmta/suppression-address-list.txt</address-list>
Пример руководства. В файле строки вида foo, bar, baz@quux.com — первые две это локальные части, то есть правила на все домены сразу. Права на файл держать не шире, чем на конфигурацию: адреса в нём открыты.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Кладут в файл образцы

§ 3.3.5.3

Чем чреватоФайл принимает адреса и локальные части, но не регулярные выражения. Строка с косыми чертами станет обычной записью, которая не совпадёт ни с чем.
Как заметитьЗаписи в файле есть, совпадений нет, ошибок тоже.
Как правильноОбразцы писать строками address прямо в конфигурации, а файл держать под простые адреса.

Оставляют файл с правами шире конфигурации

наш опыт

Чем чреватоСписок адресов в открытом виде становится доступен тем, кому не положено, и попадает в резервные копии наравне с остальным.
Как заметитьОбнаруживается при разборе доступа, а не в работе.
Как правильноПрава на файл — как на конфигурацию. Там, где список нельзя показывать вовсе, брать hashed-address-file.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
address-file <path>
Значения
путь к файлу; в файле по одной записи на строку — полный адрес или локальная часть
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<address-list>
Сколько раз
можно повторять
Всё здесь — из руководства, с разделом.
Наследование
Наследования у строки нет: она действует внутри своего блока <address-list>. Наследуется ссылка на список — suppression-lists в <source> сливается по правилу источников, в пуле достаётся участникам, а собственная строка участника пуловую перекрывает.
Как проверить на узле
Файл читается MTA при применении конфигурации, поэтому проверять надо и его самого:
wc -l /etc/pmta/suppression-address-list.txt
Число строк должно совпадать с ожидаемым числом записей; пустые строки и комментарии в этом файле не предусмотрены. Сработал ли список, видно по отказу — в его тексте стоит имя списка.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подавление адресов