accept-invalid-recipients

<source>

Принимать ли синтаксически неверные адреса вместо отказа в сессии
в конфигурации это строкаaccept-invalid-recipients falseвнутри блока <source>
Отказ сейчас или отказ отчётом

Умолчание — false. Речь идёт только о синтаксически неверных адресах — me@there, you@yahoo..com, — а не о несуществующих ящиках: те синтаксически правильны, и эта строка их не касается.

Руководство подчёркивает главное отдельным примечанием: такие адреса всё равно немедленно отбиваются и никогда не доставляются. Строка меняет не судьбу письма, а место отказа: с false он приходит прямо в сессии подачи, с true — отчётом об отказе.

Для каталогов подхвата не поддерживается; там то же решается переключателем XACK.

Главная ловушка — прочитать название как «принимать». Принято не будет: адрес отбивается в любом случае. Единственное, что меняется, — узнает ли подающая платформа об ошибке сразу или получит отчёт позже.

Отсюда и настоящий вопрос: умеет ли ваша платформа читать отказы в сессии. Умеет — оставляйте умолчание, ошибка обнаружится в момент подачи. Не умеет — включайте, иначе она будет спотыкаться на каждом кривом адресе.

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

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

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

Что ставить. Вопрос ровно один — что умеет подающая сторона:

Значение Когда
false (умолчание) платформа читает отказы в сессии и умеет на них реагировать
true платформа сессионные отказы не обрабатывает и на них спотыкается

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

Умолчание false, разбор «неверный по синтаксису, а не несуществующий», примечание о немедленном отказе и оговорка про каталог подхвата — из руководства, § 3.3.7.68. Разбивка случаев наша.
Пример в конфигурации
# уступка платформе, которая не читает отказы в сессии
<source 10.0.0.0/24>
    accept-invalid-recipients true</source>
Адрес вида me@there будет принят и тут же отбит отчётом. Доставлен он не будет и с этой строкой — она меняет только то, где отправитель узнает об ошибке.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Ждут, что кривой адрес будет доставлен

§ 3.3.7.68

Чем чреватоРуководство говорит прямо: такие адреса немедленно отбиваются и никогда не доставляются. Строка меняет только место отказа, а не его наличие.
Как заметитьСтрока включена, а адреса с ошибками всё равно попадают в отказы.
Как правильноЧинить адреса на своей стороне: MTA их не исправит ни при каком значении.

Рассчитывают на строку при подаче файлом

§ 3.3.7.68

Чем чреватоДля каталога подхвата она не поддерживается вовсе. Там то же поведение переключается своим средством, и настройка источника на него не влияет.
Как заметитьПри подаче файлом поведение не меняется, как ни правь строку.
Как правильноПользоваться переключателем подхвата, а не этой директивой.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
accept-invalid-recipients <boolean>
Значения
yes | no | true | false
Умолчание
false § 3.3.7.68
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<source>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <source> и подчиняется слиянию источников: соединение попадает под все адресные блоки, которые его накрывают, и узкий перекрывает широкий. Уступка, выданная в широком блоке, достанется и той подаче, которая отказы читать умеет, — и её ошибки станут заметны позже.
Как проверить на узле
Настройку видно в конфигурации; поведение проверяется заведомо кривым адресом:
grep -n 'accept-invalid-recipients' /etc/pmta/config /etc/pmta/virtualhost.txt
printf 'HELO test\r\nMAIL FROM:<a@example.com>\r\nRCPT TO:<me@there>\r\nQUIT\r\n' | nc <адрес-узла> 2525
Отказ на строке RCPT означает умолчание. Ответ 250 — что уступка включена: письмо примут, а отказ придёт отчётом.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подключить платформу отправки