Лимит в десять DNS запросов
RFC 7208 разрешает во время проверки SPF не более десяти DNS запросов. Их создают механизмы include, a, mx, ptr, exists и redirect. Считаются и те запросы, которые возникают внутри каждого include, в том числе внутри чужих записей, на которые он ссылается.
При превышении лимита результат проверки это permerror, и часть получателей трактует его так же, как непройденную проверку. Инструмент разворачивает всю цепочку и показывает итоговое число.
- Уберите сервисы, которыми больше не пользуетесь. Старые include живут в записи годами.
- Замените часть include на конкретные диапазоны ip4 и ip6.
- Не используйте ptr, он медленный и давно не рекомендуется.
- В конце ставьте -all или ~all, но не ?all.
SPF настроен, а письма всё равно в спаме
SPF проверяет только одно: имел ли право конкретный сервер отправлять почту от имени домена. Он смотрит на адрес возврата в конверте письма, а не на адрес From, который видит человек. Поэтому запись SPF со статусом pass сама по себе ничего не говорит о том, от кого письмо выглядит отправленным.
Есть и вторая особенность: при пересылке письмо уходит дальше с сервера пересылающего, а не вашего, и SPF на нём закономерно не проходит. Если письмо при этом не подписано DKIM, у получателя не остаётся ни одного доказательства, что письмо ваше.
Поэтому SPF в одиночку почту в папку «Входящие» не приводит. Рабочая связка выглядит так: SPF разрешает ваши серверы, DKIM подписывает письма, DMARC связывает результат с видимым адресом отправителя. Дальше остаются вещи, которые записями в DNS не чинятся: репутация IP и домена, жалобы получателей, чистота списка адресов и само содержимое письма.