relay-debug

Global

Отвечать временным отказом, пока правила приёма проверяются
в конфигурации это строкаrelay-debug falseвнутри блока Global
Право на ошибку при правке правил приёма

Умолчание — false. Обычно получатель, которому релей не разрешён, отвергается окончательным отказом 5XX — и письмо у отправителя немедленно отбивается.

С true вместо этого возвращается временный отказ 4XX. Отправляющий сервер письмо не отбивает, а продолжает пробовать.

Назначение руководство называет прямо: строка выручает в момент правки правил приёма. Пока вы меняете конфигурацию, у вас есть возможность посмотреть журнал, найти отказы, которых быть не должно, и починить правила до того, как письма отобьются.

Главная ловушка — забыть выключить. Отладочный режим стирает разницу между «правило ещё не готово» и «отправитель нам не нужен». Чужие серверы будут неделями повторять письма, которые вы никогда не примете, а ваш узел — неделями отвечать им 4XX и держать это в журнале.

Вторая половина: временный отказ прячет ошибку от вас. Отбитое письмо заметно сразу — по жалобе, по отчёту. Письмо, которое отправитель молча повторяет седьмые сутки, не заметно никак, кроме журнала, в который никто не смотрит.

Что делает Хаб. Не пишет — остаётся вендорское false.

Правила приёма Хаб задаёт по построению, тремя образцами базовой конфигурации, и правит их не вручную, а перегенерацией. Отладочный режим пригодился бы ровно в том случае, который у нас однажды был: роль-адреса отбивались 550, и о потере отчётов DMARC мы узнали не сразу.

Рекомендуемые значения

Что ставить. Строка временная по назначению:

Значение Когда
false (умолчание) правила приёма устоялись — постоянное состояние
true на время правки правил, с датой выключения, назначенной заранее

Второе имеет смысл включать вместе с просмотром журнала: без него режим только откладывает проблему, ничего не показывая.

Умолчание false, разбор «5XX против 4XX» и назначение «на время правки правил приёма» — из руководства, § 3.3.1.54.4. Совет назначать дату выключения заранее — наш.
Пример в конфигурации
# на время правки правил — вместе с просмотром журнала
relay-debug truerelay-address /^(dmarc|postmaster|abuse)@/
Пока строка включена, ошибочно отвергнутое письмо не отбивается: отправитель повторит. Это даёт время найти промах в правилах по журналу и починить его.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Включают и забывают выключить

наш опыт

Чем чреватоЧужие серверы неделями повторяют письма, которые узел никогда не примет. Ошибка в правилах приёма при этом не проявляется ничем, кроме растущего журнала.
Как заметитьВ журнале длинные ряды одинаковых временных отказов одним и тем же отправителям.
Как правильноВыключить и назначать дату выключения заранее, включая режим.

Включают режим, не глядя в журнал

§ 3.3.1.54.4

Чем чреватоСмысл режима в том, чтобы увидеть ошибочные отказы до того, как они станут отбитыми письмами. Без просмотра журнала он только откладывает проблему.
Как заметитьРежим включён давно, журнал не смотрели ни разу.
Как правильноСмотреть журнал сразу после включения — и по результату либо чинить правила, либо выключать режим.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
relay-debug <boolean>
Значения
yes | no | true | false
Умолчание
false § 3.3.1.54.4
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива пишется в корне файла конфигурации и действует на весь узел: блока для неё нет, и наследования тоже. Отладочный режим включается сразу для всех правил приёма, выборочно — нельзя.
Как проверить на узле
Строку видно в конфигурации; смысл она имеет только вместе с журналом:
grep -n 'relay-debug' /etc/pmta/config
grep -i 'relaying denied' /var/log/pmta/pmta.log | tail -20
Вторая команда и есть работа: в отладочном режиме здесь видно всё, что было бы отбито. Пустой вывод при включённом режиме означает, что правила никого лишнего не отвергают, — можно выключать.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Жизненный цикл конфигурации · Подключить платформу отправки