Не отправлять то, что не пройдёт проверку у получателя

критично

outbound SPF checking
Проверить себя раньше, чем это сделает получатель

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

Три исхода. Pass — отправляем. TempError — повторяем позже. Всё остальное — отбиваем, письмо не уходит вовсе.

Проверка требует знать адрес отправки. Он берётся из smtp-source-host или smtp-proxy-source-host; без них узел проверку выполнить не может.

Главная ловушка — домен отказов. Если его почта тоже идёт через SMTP и проверка для него включена, при ошибке в его записи SPF отказы начнут отбиваться сами — руководство называет это двойным отказом. Обратная связь теряется целиком, и заметить это можно не сразу. Для домена отказов проверку выключают явно.
Что делает Хаб. Не задействует, но это прямой кандидат: Хаб знает адреса отправки и публикует записи SPF сам, то есть обе половины у него уже есть. Включать надо вместе с явным исключением для домена отказов.
Пример в конфигурации
# домену отказов проверку выключаем, остальным включаем
<domain yourbouncedomain.com>
    check-spf-outbound no</domain>

<domain *>
    check-spf-outbound yes</domain>
Порядок блоков роли не играет: побеждает наиболее подходящий. Важно, что исключение для домена отказов есть.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Включают для домена отказов

§ 10.2

Чем чреватоОшибка в его записи SPF — и отказы начинают отбиваться сами. Обратная связь теряется целиком, а причина выглядит как «получатели перестали присылать отказы».
Как заметитьПоток отказов упал почти до нуля без изменений в отправке.
Как правильноВыключить проверку для домена отказов отдельным блоком.

Включают, не задав адрес отправки

§ 10.2

Чем чреватоПроверку выполнить нечем. Узел пишет ошибку в журнал и считает это временной неудачей: письма стоят в очереди до истечения срока и уходят в отказ по времени.
Как заметитьОчередь растёт, в журнале ошибки проверки SPF.
Как правильноЗадать smtp-source-host на уровне узла или потока.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Проверить, что почта пройдёт проверку, можно и вручную — командой узла, до всякого включения:
pmta check spf 203.0.113.10 mail.example.com sender@example.com
pmta show settings gmail.com/vmta1 | grep -i check-spf-outbound
Первая команда отвечает так же, как ответил бы получатель: по адресу, имени в приветствии и обратному адресу. Хаб этот механизм пока не задействует.
В Хабе
Цена ошибки
опасно: последствия переживут откат
Сценарии
Разобраться с доставляемостью · Подпись и аутентификация писем
Важность
критично