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

Приём входящей почты

записей в сценарии: 52
postmasterGlobalкритичноДирективаОдна из двух настроек, без которых MTA не работает: сюда сторож шлёт отчёты о падениях и об истечении лицензии, а также пересылается почта на служебные адреса.smtp-listenerGlobalкритичноХаб задаёт самДирективаЕсли не объявлен ни один приёмник, узел молча поднимает его на 0.0.0.0:25.check-spf-inbound<source>ДирективаВключает проверку на входе и добавляет к письму заголовок с её результатом.deliver-unmatched-email<feedback-loop-processor>Хаб задаёт самДирективаЧто делать с письмом, которое обработчик не признал; по умолчанию доставить, и это же условие пересылки.deliver-unmatched-email<bounce-processor>Хаб задаёт самДирективаЧто делать с письмом, которое обработчик не признал; по умолчанию доставить, и это же условие пересылки.forward-unmatched-to<feedback-loop-processor>ДирективаАдрес, на который уходит нераспознанное письмо; строка повторяется, и требует разрешённой доставки нераспознанного.forward-unmatched-to<bounce-processor>ДирективаАдрес, на который уходит нераспознанное письмо; строка повторяется, и требует разрешённой доставки нераспознанного.reject-spf-check-fail<source>ДирективаСамый однозначный из трёх исходов: владелец домена сказал, что с этого адреса слать нельзя.reject-spf-check-permerror<source>ДирективаОтправитель ничего не запрещал — он ошибся в синтаксисе; умолчание всё равно отвергает.reject-spf-check-temperror<source>ДирективаЕдинственный из трёх исходов, где отказ временный: отправителю предлагают повторить.verp-default<source>ДирективаВключение на стороне подачи: действует на всё, что подано этим источником.address<address-list>Хаб задаёт самДирективаПринимает три формы — полный адрес, одну локальную часть или регулярное выражение в косых чертах.aliasGlobalДирективаОбъявляет адрес, письма на который уходят одному или нескольким другим адресам; сокращённая запись действует во всех локальных именах узла.body-pattern-file<email-patterns>ДирективаРегулярное выражение с именованными группами, вытаскивающее поля учёта из тела нестандартного отчёта; строка повторяется.check-arc-inbound<source>ДирективаТа же наблюдательная проверка, что и для обычной подписи; отказов у неё тоже нет.check-dkim-inbound<source>ДирективаТолько наблюдение: отказов по результату проверки подписи у MTA нет вовсе.check-iprev-inbound<source>ДирективаОбратная проверка адреса: сверяются запись PTR и имя, которым узел представился.check-spf-inbound-max-void-lookups<source>ДирективаПорог защищает резолвер от раскрутки чужой записью — и превращает сложные записи в постоянную ошибку.deliver-matched-email<bounce-processor>Хаб задаёт самДирективаЧто делать с распознанным письмом после разбора: доставить получателю или выбросить; по умолчанию выбросить.deliver-matched-email<feedback-loop-processor>Хаб задаёт самДирективаЧто делать с распознанным письмом после разбора: доставить получателю или выбросить; по умолчанию выбросить.domain<address-list>ДирективаОдна строка вместо перечисления адресов — в список попадают все получатели этого домена.forward-errors-to<feedback-loop-processor>ДирективаАдрес для писем, которые обработчик не смог разобрать; строка повторяется.forward-errors-to<bounce-processor>ДирективаАдрес для писем, которые обработчик не смог разобрать; строка повторяется.reject-iprev-check-fail<source>ДирективаУмолчание — пропускать, и это противоположность одноимённой строке в семье SPF.reject-iprev-check-permerror<source>ДирективаПостоянная ошибка обратной проверки — почти всегда чужая незаполненная зона, а не подделка.reject-iprev-check-temperror<source>ДирективаВременный сбой разрешения имён; отказ здесь тоже временный, и виноват обычно свой резолвер.relay-addressGlobalХаб задаёт самДирективаАдресный аналог приёма по домену: принимает конкретный адрес или регулярное выражение, а не весь домен; строку повторяют.relay-domainGlobalДирективаПеречисляет домены, для которых узел принимает почту независимо от того, кто её подаёт; строку повторяют, и она нужна только там, где узел обслуживает входящую почту.custom-dsn-from-headerGlobalДирективаЗадаёт отправителя отчёта строкой без подстановок; более новая строка того же назначения умеет подставлять значения из исходного письма.dsn-failed-body-template-fromGlobalДирективаПуть к файлу-шаблону тела отчёта; в нём подставляются девять значений из исходного письма — от имени узла до ответа приёмника.dsn-failed-from-templateGlobalДирективаЗадаёт отправителя формируемого отчёта с подстановками из исходного письма; более старая строка того же назначения подстановок не поддерживает.dsn-failed-subject-templateGlobalДирективаЗадаёт тему формируемого отчёта с подстановками из исходного письма; набор подстановок общий с шаблоном тела.dsn-format<domain>ДирективаВторое значение отдаёт вместо полного отчёта одну его часть — статус доставки, обычным текстом, чтобы отчёт прошёл сквозь почтовые фильтры, режущие вложения.dsn-return-default<source>ДирективаУмолчание для параметра RET, которым отправитель просит вернуть в отчёте всё письмо или одни заголовки; формат plain-text эту строку отменяет.notify-of-delay-every<domain>ДирективаИнтервал проверки для уведомлений о задержке, которые подающая сторона запросила при подаче; значение never отключает их для этого приёмника.trace-dkim-check<source>ДирективаСлед проверки подписи: запросы за открытым ключом уезжают вместе с письмом.trace-iprev-check<source>ДирективаСлед уезжает вместе с письмом; для обратной проверки он короткий, но природа та же.trace-spf-check<source>ДирективаОтладочный переключатель: в письмо попадает всё, что узел спрашивал у DNS.deliver-email<feedback-loop-processor>устарелаДирективаОдна строка решала судьбу и узнанных, и непонятых писем; заменена двумя раздельными.deliver-email<bounce-processor>устарелаДирективаОдна строка решала судьбу и узнанных, и непонятых писем; заменена двумя раздельными.deliver-local-dsn<domain>устарелаДирективаУстаревшая директива: выключала письма-отчёты по домену отправителя; заменена настройкой в блоке источника.Кому разрешено сдавать почту и для кого её приниматькритичноМеханизмИз коробки узел принимает подачу только с самой машины; два разных вопроса — «кто может слать через нас» и «на чьи адреса мы принимаем» — решаются разными директивами.Списки адресов — именованные и безымянныеМеханизмСписок адресов, доменов, образцов или хешей; именованный подключается директивами вроде подавления, безымянный живёт внутри процессора входящей почты.Два обработчика входящих отчётов и что с ними делатьМеханизмОтказы письмом и жалобы разбираются двумя одинаково устроенными блоками; у каждого свой список адресов и своя пара решений о судьбе письма.Отдать письмо вебхуку вместо приёмникаМеханизмОчередь шлёт письмо запросом POST в виде объекта JSON; успехом считается только ответ 2xx.Что делать с принятым письмомМеханизмЧто узел делает с принятым входящим письмом: пересылает, кладёт в файл, гасит, передаёт программе или разбирает как отказ или жалобу.Кто занял портМеханизмДва слушателя на один порт не помещаются: если порт уже занят, узел не поднимется, и причина будет только в журнале.Замена получателя одним или несколькими другимиМеханизмПисьмо, пришедшее на объявленный адрес, пересылается на другие; раскрытие происходит после выбора потока, но до постановки письма в него.Отдать письмо программе на этом же узлеМеханизмОчередь запускает программу на каждого получателя и подаёт ей письмо на вход.Разбор приёма писемПроцедураПорядок разбора, когда письма не принимаются: включить журналирование соединений и команд для источника, посмотреть сессию, выключить обратно.<bounce-processor>Блок конфигурацииБлок включает разбор входящих писем на предмет отказов; ловит по вложенному списку адресов и пишет записи учёта вида rb.<feedback-loop-processor>Блок конфигурацииБлок включает разбор входящих писем на предмет жалоб; ловит по вложенному списку адресов и пишет записи учёта вида f.