bounce-upon-pix-transfer-failure

<domain>

То же решение, но только когда на стороне приёмника обнаружен Cisco PIX
в конфигурации это строкаbounce-upon-pix-transfer-failure falseвнутри блока <domain>
Тот же выбор, суженный до одного вида оборудования

Полная копия bounce-upon-transfer-failure с одним отличием: письмо отбивается только если на стороне приёмника обнаружен межсетевой экран Cisco PIX. Во всех прочих случаях обрыв переноса обрабатывается как обычно.

Признак обнаружения прост до неловкости: узел смотрит на строку приветствия приёмника и считает её PIX’ом, если в ней не меньше десяти звёздочек подряд. Так экран прячет настоящее приветствие почтового сервера. Никакой другой проверки нет.

Строка существует потому, что у некоторых версий этого экрана есть известная неполадка в разборе почтового протокола, из-за которой письма задваиваются чаще обычного. Тем же экраном занимается pix-bug-workaround — он, в отличие от этой строки, включён по умолчанию.

Главная ловушка. Обнаружение работает по десяти звёздочкам в приветствии — и ничем больше. Любой приёмник, скрывающий своё приветствие таким же образом, будет опознан как PIX, хотя никакого PIX за ним нет. Строка редкая и старая; включать её имеет смысл, только если вы действительно видите такие приветствия в журнале.
Что делает Хаб. Не пишет — остаётся вендорское false. Cisco PIX снят с производства, и в парке, с которым работает Хаб, такие приветствия не встречались.
Рекомендуемые значения

Почти всем — оставить выключенной. Оборудование давно снято с производства, и вероятность встретить его сегодня мала.

Сначала посмотрите журнал. Если приветствий со звёздочками нет, строка не сработает ни разу, каким бы ни было значение.

Если PIX всё же есть — включайте обе строки семьи. pix-bug-workaround уменьшает вероятность задвоения, эта решает, что делать, когда задвоение всё-таки произошло.

Совет проверять журнал до включения — наш. Из руководства здесь умолчание false, признак обнаружения по десяти звёздочкам в приветствии и то, что во всём остальном строка повторяет общую.
Пример в конфигурации
# обрыв переноса отбиваем только за экраном, который задваивает письма
<domain legacy.example.com>
    bounce-upon-pix-transfer-failure true    pix-bug-workaround yes
</domain>
Вторая строка здесь не лишняя: она уменьшает саму вероятность задвоения, а первая решает, что делать, если оно всё-таки случилось.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Включают её вместо общей строки

§ 3.3.10.71

Чем чреватоОбрывы переноса у обычных приёмников продолжают обрабатываться по умолчанию. Настройку считают действующей, а она молчит, пока в приветствии нет десяти звёздочек.
Как заметитьДубли у получателей продолжаются, строка включена.
Как правильноДля общего случая задавать bounce-upon-transfer-failure, а эту оставить узкому.

Включают вслепую, «на всякий случай»

наш опыт

Чем чреватоПриёмник, прячущий приветствие за звёздочками без всякого PIX, будет опознан как PIX. Его письма начнут отбиваться при первом же обрыве переноса вместо повторных попыток.
Как заметитьОтказы по обрыву переноса у одного конкретного приёмника, которого раньше не было в отказах.
Как правильноДо включения убедиться по журналу, что такие приветствия вообще встречаются.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
bounce-upon-pix-transfer-failure <boolean>
Значения
yes или no; true и false принимаются наравне с ними
Умолчание
false § 3.3.10.71
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Подхватывается по pmta reload. Действует только при обнаруженном экране, поэтому включение на общем блоке безопаснее, чем у общей строки, — но и бесполезно там, где такого оборудования нет.
Как проверить на узле
Значение печатает команда настроек очереди; обнаруживается ли экран вообще — видно по приветствиям в журнале:
pmta show settings legacy.example.com/vmta1 | grep -i pix
grep -E '^220 .*[*][*][*]' /var/log/pmta/pmta.log | tail -10
Вторая команда ищет приветствия со звёздочками; сам PowerMTA считает экраном приветствие, где их не меньше десяти подряд. Пустой ответ означает, что строка не сработает ни разу. Хаб приветствия приёмников не разбирает.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Классификация отказов · Настроить темп под провайдера