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

Разобраться с доставляемостью

записей в сценарии: 86
disable-acct-records<domain>критичноДирективаОтключает создание записей учёта выбранных видов — доставки, отказа, временной неудачи, неудачи постановки — для отдельной очереди.record-fields<acct-file>критичноХаб задаёт самДирективаСписок полей для одного вида записей; умолчание — звёздочка, то есть набор полей по умолчанию, помеченный в таблицах руководства; поддерживает исключение и произвольные заголовки письма.retry-after<domain>критичноХаб задаёт самДирективаМожно задать последовательностью: 10m, 1h, 4h — и тогда паузы растут от попытки к попытке.smtp-proxy-source-hostGlobalкритичноДирективаВендорский способ отправлять через прокси — локальный адрес, прокси, адрес клиента и имя в приветствии одной строкой.auto-mx-rollupGlobalДирективаОдна строка вместо списка: узел группирует домены сам и сам придумывает имя очереди.backoff-notify<domain>Хаб задаёт самДирективаПисьмо приходит на оба события — и на вход в щадящий режим, и на выход из него.backoff-retry-after<domain>Хаб задаёт самДирективаРасписание повторов на время backoff; задаётся последовательностью.bounce-category-patterns<domain>ДирективаСтавит свой разбор ответов впереди общего — не меняя того, отбито письмо или нет.check-spf-outbound<domain>ДирективаНе прошло — письмо отбивается у нас, не доехав до приёмника; временная ошибка — повтор.discard-as-bounce<domain>ДирективаОчередь вида discard всё равно пишет в учёт — эта строка решает, какой буквой.name-serverGlobalДирективаЗадаёт адреса серверов имён; строку повторяют, и MTA ходит по ним по кругу. Не задана — берутся резолверы операционной системы.precached-domains-file<dns>ДирективаТекстовый файл по домену на строку; перечисленные домены разрешаются независимо от того, есть ли для них письма в очереди.precached-refresh-interval<dns>ДирективаЗадаёт расписание обновления вместо срока жизни записи у приёмника: собственный срок этих доменов игнорируется.proxy-retry-after<domain>ДирективаТот же шаг повторов, но для случая, когда до приёмника не дошло соединение через прокси.retry-recipients-after<domain>Хаб задаёт самДирективаНижняя граница паузы для адреса, ответившего 4xx, — поверх общего расписания очереди.smtp-553-means-invalid-mailbox<domain>Хаб задаёт самДирективаДогадка на месте недосказанности приёмника — и от неё зависит, попадёт адрес в чёрный список или нет.track-time-first-attemptGlobalХаб задаёт самДирективаВключает подсчёт времени первой попытки; открывает поле в записях учёта и метрику задержки. По умолчанию выключено.use-dane<domain>ДирективаУзел читает записи DANE получателя, требует шифрования, если тот его требует, и сверяет сертификат по отпечатку из DNS; умолчание — выключено.allow-cancel-during-transfer<domain>ДирективаУмолчание разрешает — ради быстрой остановки службы; выключение бережёт от дублей, но останавливает узел дольше.auth-password<domain>ДирективаВторая половина пары; знак решётки в нём недопустим — MTA считает его началом комментария.auth-username<domain>ДирективаОдна из двух строк, включающих исходящую аутентификацию: хватает непустой любой из них.connect-timeout<domain>ДирективаПервый таймаут разговора: до приветствия дело ещё не дошло.edns-udp-lengthGlobalДирективаВключает расширение EDNS и задаёт наибольший размер ответа по UDP; без него ответы длиннее 512 байт обрезаются, и маршрут может собраться неполным.log-commands<source>Хаб задаёт самДирективаПишет в журнал полный обмен командами и ответами; вендор называет это первым шагом при разборе связи.log-disabled-ips<domain>ДирективаЕдинственный источник истории: список отключённых показывает «сейчас», журнал — «что было».max-events-recorded<domain>ДирективаНе журнал, а память: десять последних ошибок по домену, видимых в консоли и веб-мониторе.max-msg-per-connection<domain>Хаб задаёт самДирективаУмолчание — ноль, без предела: MTA выгоднее отдать в одно соединение как можно больше.max-rcpt-per-transaction<domain>ДирективаРежет письмо с большим списком на несколько передач: больше параллельности, но тело уходит на приёмник столько раз, на сколько кусков разрезали.precached-max-domains<dns>ДирективаПотолок числа доменов, берущихся из файла; больше числа строк в файле быть не может, а лишние строки обрезаются молча.retry-after-dns-error<domain>Хаб задаёт самДирективаОтдельный, более короткий шаг: приёмник этой попытки не видел, и спешка ему ничем не грозит.smtp-421-means-mx-unavailable<domain>Хаб задаёт самДирективаВендорское умолчание — остаться на том же соединении; включение переводит очередь на резервный сервер приёмника.smtp-data-termination-timeout<domain>ДирективаПоследнее ожидание разговора — и самое опасное: сократишь, получишь дубли.time-first-attempt-domains-file<prometheus-listener>ДирективаСписок приёмников, до ста имён, для которых метрика первой попытки получает свою метку; остальные попадают в other.track-outbound-perf-statsGlobalДирективаВключает подсчёт времени от MAIL FROM до конца DATA при отправке; полезна только вместе со слушателем метрик.track-recipient-events<domain>ДирективаПо умолчанию выключено: страница очереди молчит о том, что происходило с конкретными адресами.use-unencrypted-plain-auth<domain>ДирективаОба механизма передают пароль в разговоре; без шифрования он идёт по сети открытым.data-send-timeout<domain>ДирективаТретье ожидание разговора; руководство напоминает: меньше трёх минут — нарушение почтового стандарта.ignore-8bitmime<domain>ДирективаОбход известной несовместимости: внешний шлюз принимает 8BITMIME, а внутренний за ним — нет.ignore-chunking<domain>ДирективаОтладочный переключатель: возвращает передачу к обычной команде DATA.ignore-dsn<domain>ДирективаОтменяет запросы отчётов о доставке, которые письмо несёт с подачи.ignore-pipelining<domain>ДирективаВторой отладочный переключатель: команды идут по одной, с ответом на каждую.log-resolution<domain>ДирективаПишет в журнал ход поиска имён и маршрутов для приёмника; по умолчанию выключено.log-transfer-failures<domain>Хаб задаёт самДирективаПишет предупреждение, когда соединение рвётся во время передачи заголовков и тела; по умолчанию выключено.max-rcpt-per-message<domain>ДирективаТот же предел нарезки под другим именем — и полный тёзка настройки приёма из блока подачи.replace-smtp-421-service-response<domain>ДирективаЗаменяет текст после кода 421 на «service unavailable», чтобы адреса из чужого ответа не попали в отчёт об отказе; разбор по образцам при этом продолжает работать.smtp-greeting-timeout<domain>ДирективаВторое ожидание разговора: соединение есть, приёмник молчит.Договор о телеметриикритичноМеханизмОдин блок описывает выход учёта целиком: какие виды записей, какие поля, куда они идут, как сменяются файлы и что обезличивается.Как складывается политика для приёмникакритичноМеханизмНастройки собираются от самого общего образца к самому точному; порядок блоков в файле не значит ничего.Как узел отвечает на слова приёмникакритичноМеханизмСопоставляет ответы SMTP с регулярными выражениями и по совпадению меняет режим очереди — тот самый спусковой крючок, которого ждёт вся машинерия щадящего режима.Как устроена запись учётакритичноМеханизмКак устроена запись учёта: вид записи в первом столбце, дальше поля, состав которых настраивается.Щадящий режим — вторая личность очередикритичноМеханизмОчередь, которой приёмник начал отказывать, переключается на параллельный набор лимитов, повторов и маршрутов — десять директив, действующих только в этом режиме.Жалобы, разобранные узлом — и разбираются они вторымикритичноМеханизмПочта, пришедшая на адрес из настроенного списка, разбирается как отчёт о жалобе; порядок разбора важен — обработчик жалоб работает после обработчика отказов.Что узел рассказывает о себе и по каким каналамкритичноМеханизмСемь поверхностей наблюдения: веб-монитор, консоль в четырёх форматах, журнал, учёт, поиск по учёту, метрики и выгрузка во внешнюю аналитику.Не отправлять то, что не пройдёт проверку у получателякритичноМеханизмУзел сам проверяет SPF своей почты перед отправкой: не прошло — отбивает, не дожидаясь чужого отказа.События получателейкритичноМеханизмПоследние 50 событий доставки, отказа и задержки по очереди — включаются track-recipient-events и видны в выводе очередей.Наблюдение за репутацией внутри узлакритичноМеханизмMTA сам следит за ответами приёмников и по совпадению с образцом меняет режим очереди — реакция внутри соединения, а не по телеметрии.Засеивание кампаний контрольными адресамиМеханизмMTA подмешивает в рассылку адреса вендора, а результат смотрят в его инструменте доставляемости; независимо от выгрузки событий.Разбор и правка разметкиМеханизмОтслеживание открытий и переходов в режиме sparkpost правит разметку письма с помощью встроенного разборщика gumbo-parser; письмо, разметку которого разобрать не удалось, по умолчанию отбивается.Отдача показателей сборщикуМеханизмОтдача показателей узла внешнему сборщику в его формате.Сторож, который перезапускает MTAМеханизмПрисматривает за MTA и после падения поднимает его сам, отправляя отчёт о падении на адрес ответственного.Указатель директивМеханизмАлфавитный перечень руководства: 475 строк называют 477 мест описания директив — единственная полная опись языка конфигурации.Чужие составляющие MTAМеханизмPowerMTA работает на пяти сторонних библиотеках — PCRE, OpenSSL, ICU, gumbo-parser и prometheus-cpp; их поведение задаёт сборка MTA.Разобраться, почему копится очередь к одному приёмникуПроцедураСначала одной командой проверить маршрут и достижимость, потом заставить узел попробовать доставку с записью сессии, и лишь при перемежающейся неполадке включить журналирование по приёмнику.<dns>Блок конфигурацииБлок предварительного кэша DNS: файл со списком доменов, потолок их числа и расписание обновления. Резолверы задаются вне блока.disable sourceкритичноКомандаЕсть опция вернуть его автоматически через интервал — без неё адрес останется отключённым навсегда.show queuesкритичноКомандаПоказывает выбранные очереди и, если не запретить, последние полсотни доставок, отказов и задержек; отбор идёт по соединению, режиму и приостановке.show settingsкритичноКомандаПечатает настройки для пары «приёмник и адрес отправки» после слияния всех блоков.resolveКомандаЗапрашивает записи MX и адреса домена и с –connect подключается к первому доступному почтовому хосту.show domainsКомандаПечатает домены получателей, сложив по каждому все адреса отправки.traceКомандаОткрывает соединение с доменом и пробует доставить одно письмо из очереди, записывая разговор SMTP в журнал.pmtastatsКомандаСчитает по файлам учёта пропускную способность и статистику трафика — по узлу, адресам отправки, заданиям и доменам.acctfindКомандаИщет записи в файлах учёта по полям и печатает выбранные поля в одном из семи форматов.Подробности одной очередикритичноТочка APIОтдаёт одну очередь с короткими историями: последние события получателей, ошибки и смены режима.Подробности одного приёмникаТочка APIОтдаёт состояние одного домена получателя.Доставлено — запись, по которой считают всёкритичноЗапись учётаПишется на каждого получателя, чьё письмо принял сервер назначения: исход, время, адрес отправки, задание, защита передачи и прокси.ЖалобаЗапись учётаОтчёт о жалобе получен и разобран настроенным обработчиком.Временная неудачаЗапись учётаОдна попытка доставки не удалась, и получатель остаётся в очереди до следующей.Уведомление о доставкеЗапись учётаПришло уведомление о состоянии доставки, не являющееся отказом, — например подтверждение доставки.Приёмник отказал в соединенииКод ошибкиСоединение не установилось: удалённый хост отверг его — либо почтовый сервер выключен, либо фильтр отбивает именно этого отправителя.Отказ на приветствииКод ошибкиПриёмник вернул ошибку на первом же шаге разговора — обычно 4xx: занят, временно не принимает почту или не разрешает это соединение.Приёмник разорвал соединениеКод ошибкиУдалённый хост неожиданно закрыл соединение — сервер выключили или он упал, либо так он ответил на содержимое письма.Три коротких истории по каждой очередикритичноЭкран монитораСтраница одной очереди несёт последние полсотни событий получателей, последние десять ошибок очереди и последние десять смен режима.Приёмники, сложенные по всем адресам отправкиЭкран монитораСамые нагруженные домены получателей по числу адресатов: объём, открытые соединения и последняя ошибка, плюс форма отбора по конкретному домену.Спам-ловушкиЭкран монитораОтчёт SparkPost Signals о попаданиях в спам-ловушки по дням — числом или долей от объёма дня.Обзор аналитики вендораЭкран монитораОбзор SparkPost Signals: таблицы лидеров по оценке здоровья и спам-ловушкам в разрезе кампании, пула и домена отправки, до 90 дней.Сводка службыЭкран монитораОтчёт SparkPost Signals с метриками отправки за выбранный период и группировкой по доменам, кампании, адресу и пулу.