html-edit-error-mode

<signals>

Что делать, если письмо не удалось разобрать для подстановки
в конфигурации это строкаhtml-edit-error-mode perm-failвнутри блока <signals>
Цена неудачной подстановки

Чтобы вставить ссылки и пиксели, MTA разбирает HTML письма. Разбор может сорваться — и строка решает, что тогда. Умолчание — perm-fail.

🔴 Умолчание означает отказ в доставке. Письмо, чей HTML MTA не осилил, будет отбито как неудачная передача — то есть не дойдёт до получателя вовсе. Из-за отслеживания.

Второе значение — deliver-unmodified: ошибка игнорируется, письмо уходит как есть, без вставленных ссылок. Отслеживания по нему не будет, доставка будет.

В журнал пишется в обоих случаях.

Выбор здесь простой по смыслу: что дороже — доставка письма или полнота статистики. Для рассылок ответ почти всегда «доставка».

Главная ловушка — оставить умолчание и не знать об этом. Письма с нестандартной вёрсткой — от чужого редактора, с неожиданными тегами — начнут отбиваться, и в отказах это будет выглядеть как ошибка передачи, а не как ошибка разбора.
Что делает Хаб. Не пишет — и не собирается: подстановка чужих ссылок в наши письма означала бы, что переходы получателей идут через домен вендора.
Рекомендуемые значения

Выбор здесь короткий:

Значение Когда
perm-fail (умолчание) статистика важнее доставки — почти никогда
deliver-unmodified доставка важнее полноты отслеживания
Оба значения, умолчание perm-fail и запись ошибки в журнал в обоих случаях — из руководства (§ 11.1.6.2.10).
Пример в конфигурации
# доставка важнее полноты статистики
<signals>
    engagement-tracking sparkpost
    html-edit-error-mode deliver-unmodified</signals>
При умолчании письмо с непонятной вёрсткой не дойдёт до получателя вовсе.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Оставляют умолчание при рассылках от разных редакторов

наш опыт

Чем чреватоПисьма с нестандартной вёрсткой отбиваются как неудачная передача. В статистике это выглядит ошибкой доставки, а причина — в подстановке ссылок.
Как заметитьЧасть кампаний даёт отказы без внятной причины у приёмника.
Как правильноПоставить deliver-unmodified и смотреть ошибки разбора в журнале.

Ждут действия строки при выключенной подстановке

§ 11.1.6.2.10

Чем чреватоСтроки подстановки работают только при engagement-tracking со значением sparkpost. При других значениях они не делают ничего.
Как заметитьСтрока задана, в письмах ничего не изменилось.
Как правильноПроверить значение engagement-tracking.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
html-edit-error-mode { perm-fail | deliver-unmodified }
Значения
perm-fail | deliver-unmodified
Умолчание
perm-fail § 11.1.6.2.10
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<signals>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри <signals>, а такой блок на узле один. Охват выгрузки по потокам задаётся строкой enable-signals с тремя уровнями.
Как проверить на узле
Результат виден в самом письме — проверять надо по доставленному:
grep -i "signals\|html" /var/log/pmta/log | tail -20
Надёжнее посмотреть письмо, дошедшее до контрольного ящика: ссылки и пиксели в нём либо есть, либо нет.
В Хабе
Цена ошибки
опасно: последствия переживут откат
Сценарии
Классификация отказов · Инфраструктура трекинга