База знаний PMTA›Сценарий

Жизненный цикл конфигурации

записей в сценарии: 54
run-as-rootGlobalкритичноДирективаДля работы от непривилегированного пользователя должно быть false; смена требует перезапуска.http-enable-api-configGlobalДирективаОткрывает интерфейс, позволяющий заводить списки адресов и адреса отправки по HTTP; выключен по умолчанию.includeGlobalХаб задаёт самДирективаЧитает дополнительный файл — по пути, по маске или по адресу HTTP; содержимое обрабатывается так, будто написано на этом месте.smtp-hosts<domain>ДирективаСписок хостов с уровнями предпочтения, портами и адресами — либо указание взять MX другого домена.include<domain>ДирективаТа же директива, записанная внутри блока получателя — подключённые строки становятся правилами этого получателя.relay-debugGlobalДирективаПереводит контроль релея в отладочный режим: вместо окончательного отказа узел отвечает временным, и письмо остаётся у отправителя, а не отбивается.backoff-max-msg-per-hour<domain>устарелаДирективаЗамена — backoff-max-msg-rate, и у неё есть умолчание, которого у этой формы не было.broken-auth-clients<source>устарелаДирективаОдна из двух директив каталога, о которых руководство не говорит ничего, кроме слова «устарела».check-spf-inbound-best-guess<source>устарелаДирективаРуководство помечает её как устаревшую и прямо не советует применять.delivery-priority<domain>устарелаДирективаРаздел содержит только пометку об устаревании и указание на замену: приоритет очереди.max-msg-per-hour<domain>устарелаДирективаЗамена — max-msg-rate: то же ограничение, но интервал пишется в самом значении.max-smtp-out-per-source-ip<domain>устарелаДирективаПрежнее имя лимита соединений на адрес; руководство больше ничего о ней не сообщает.route<domain>устарелаДирективаТот же механизм под старым именем: руководство даёт ей дословно то же описание и просит пользоваться новым.smtp-ipGlobalустарелаДирективаЗамена — smtp-listener: адрес и порт в одной строке, и её присутствие делает эту строку немой.smtp-portGlobalустарелаДирективаВторая половина замененной пары: порт задавался отдельно от адреса, теперь они пишутся одной строкой.smtp-server-tls-allow-sslv3GlobalустарелаДирективаPowerMTA больше не поддерживает SSLv3; строка сохранена только ради совместимости конфигураций.smtp-tls-allow-sslv3<domain>устарелаДирективаPowerMTA больше не поддерживает SSLv3; строка сохранена только ради совместимости конфигураций.spoolGlobalустарелаДирективаЗадавала расположение спула одной строкой; заменена блоком, у которого есть приоритет, порог свободного места и режимы.Как узел выбирает источник и складывает его настройкикритичноМеханизмСоединение попадает под все блоки источника, чьи адреса его накрывают, и действуют они слитно — узкий перекрывает широкий; именованные блоки подключаются только по прямой ссылке.Настройка через API и файл не сходятсякритичноМеханизмОбъекты, созданные через интерфейс настройки, в файле не правятся: два источника правды о конфигурации не сходятся.Перезагрузка настроек против перезапуска службыкритичноМеханизмКонфигурация читается при старте, дальше правки подхватываются командой перезагрузки — кроме тех директив, которые руководство помечает как требующие перезапуска.Четыре типа значений, на которых написан весь конфигкритичноМеханизмЛогическое, образец домена, регулярное выражение и промежуток времени — определены один раз в § 3.2 и дальше используются всеми директивами.Одноимённые директивыМеханизмИмя директивы определяет настройку только вместе с блоком: 48 из 417 имён описаны больше чем в одном месте, и одно имя в разных блоках — не всегда одна настройка.Как API сообщает об ошибкеМеханизмПодача по HTTP сообщает об ошибках кодами ответа, а API настройки на всё, кроме отказа в доступе, отвечает 200 и пишет исход в поле status.Диалект регулярных выраженийМеханизмРегулярные выражения конфигурации — совместимые с Perl, на библиотеке PCRE: так пишут выбор адреса отправки, правила ответов, категории отказов, списки адресов и заголовки подписи.Указатель директивМеханизмАлфавитный перечень руководства: 475 строк называют 477 мест описания директив — единственная полная опись языка конфигурации.Чужие составляющие MTAМеханизмPowerMTA работает на пяти сторонних библиотеках — PCRE, OpenSSL, ICU, gumbo-parser и prometheus-cpp; их поведение задаёт сборка MTA.Принять, направить, доставитьМеханизмПуть письма внутри узла: принять, решить куда, доставить — и между этими тремя шагами живут все настройки.Первоначальная настройкакритичноПроцедураРуководство требует задать руками две вещи: адрес ответственного и управление ретрансляцией — источники подающих машин с always-allow-relaying; правила приёма нужны, только если узел принимает входящую почту.Сменить адрес отправки, когда письма уже в очередиПроцедураНовые соединения берут новое определение сразу после перезагрузки конфигурации; уже открытые доживают на старом.Разбор отказа запускаПроцедураПорядок поиска причины, когда MTA не поднимается: отдельный файл отказов запуска, основной журнал, запуск в консоли с выводом на экран.Запуск и остановка MTAПроцедураMTA работает службой на Windows и демоном на Unix; после запуска рядом с ним должен оказаться сторож, а остановка прекращает доставку, не трогая писем на диске.<virtual-mta-pool>Блок конфигурацииНесколько адресов, к которым обращаются как к одному, с чередованием между ними.<address-list>Блок конфигурацииИменованный список подключается по имени; безымянный живёт внутри обработчика отказов или жалоб и отбирает почту для разбора.<email-patterns>Блок конфигурацииБлок с файлами образцов, вкладывается внутрь обработчика отказов или жалоб; строк в нём две.<include-config>Блок конфигурацииТо же, что include с адресом, но позволяет задать заголовки запроса — например, авторизацию.<smtp-user>Блок конфигурацииОдин блок — один логин: чем подтверждается вход и какой именованный источник даёт ему права; объявляется в корне файла.<source-group>Блок конфигурацииСобирает источники в группу, чтобы пределы входящих соединений действовали на них вместе; участники называют группу у себя.<transmissions-api-listener>Блок конфигурацииАдрес, порт и шифрование для подачи писем по HTTP.<transmissions-api>Блок конфигурацииКлючи доступа, предел размера запроса и журналирование для подачи почты по HTTPS; объявляется один раз в корне файла.<rewrite-list>Блок конфигурацииИменованный список правил; подключается к источнику по имени, и все письма оттуда проходят через него.<signals-filter>Блок конфигурацииБлок с правилами по домену отправителя; подключается к охвату по имени, несовпавшее считается выключенным.reloadкритичноКомандаПеречитывает файл конфигурации и включает новые настройки; при ошибке в файле команда не проходит, а узел продолжает работать на прежних.show settingsкритичноКомандаПечатает настройки для пары «приёмник и адрес отправки» после слияния всех блоков.test configкритичноКомандаРазбирает конфигурацию, ничего не применяя.pmtad –debugКомандаЗапускает MTA в переднем плане, печатая сообщения на экран вместо файла.Заменить файл конфигурации по сетиТочка APIЗаписывает на узел один или несколько файлов конфигурации — без проверки содержимого и без перечитывания.Прочитать файл конфигурации по сетиТочка APIОтдаёт содержимое файла конфигурации из /etc/pmta/ — сам файл или строкой внутри JSON.Перечень файлов конфигурацииТочка APIПеречисляет действующие файлы конфигурации узла: главный, подключённые и файл умолчаний.Чтение спула при запускеМетрикаДоля выполненного чтения спула при запуске, в процентах.КонфигурацияЭкран монитораПоказывает главный и подключённые файлы конфигурации и позволяет их править; сохранение само перечитывает конфигурацию.Главный файл конфигурации узлакритичноФайл/etc/pmta/config — обычный текстовый файл в UTF-8, читается при старте и по перезагрузке настроек; хранит пароли и ключи подписи открытым текстом.Куда узел пишет, почему не запустилсяФайлОтдельный файл с сообщением об отказе запуска — первое, что читают, когда MTA не поднимается после установки или правки конфигурации.Файл умолчанийФайлВторой основной файл конфигурации: умолчания, поверх которых читается главный.