Что такое SPF?
SPF (Sender Policy Framework) — это протокол аутентификации электронной почты, определенный в RFC 7208. Он работает путем публикации DNS-записи типа TXT для вашего домена, в которой перечислены все IP-адреса или имена хостов, которым разрешено отправлять почту «от имени» этого домена. Когда принимающий почтовый сервер получает сообщение, якобы отправленное вами, он запрашивает ваш DNS, чтобы проверить, входит ли IP-адрес отправителя в ваш список разрешенных.
Без SPF любой может подделать обратный путь (envelope From) письма и сделать так, чтобы оно выглядело как отправленное с вашего домена — этот прием часто используется в фишинговых и спам-кампаниях.
Зачем вам нужен SPF?
1Предотвращение спуфинга
Останавливает злоумышленников, подделывающих ваш домен в качестве адреса отправителя
2Улучшение доставляемости
Принимающие серверы доверяют авторизованным отправителям и снижают показатели спама
3Необходим для DMARC
SPF — один из двух механизмов, на которые опирается DMARC для проверки соответствия (alignment)
4Защита репутации
Неавторизованные отправители не смогут испортить репутацию вашего домена
Как работает SPF — пошагово
Вы публикуете TXT-запись в `_your-domain.com`, перечисляя авторизованные IP и включения (includes).
Ваш почтовый сервер отправляет письмо; адрес конверта «From» содержит ваш домен.
Принимающий сервер извлекает IP отправителя и домен из конверта From.
Он запрашивает вашу DNS-запись SPF и проверяет, указан ли в ней IP отправителя.
Результат: `pass`, `fail`, `softfail`, `neutral` или `permerror` — используется для принятия решения о фильтрации спама.
Синтаксис записи SPF
v=spf1 ip4:203.0.113.10 include:_spf.google.com include:sendgrid.net -allРазбор механизмов
v=spf1— версия, всегда в началеip4:— авторизация IPv4-адреса/диапазонаip6:— авторизация IPv6-адреса/диапазонаinclude:— наследование SPF другого доменаa— авторизация IP-адреса из A-записи доменаmx— авторизация MX-серверов доменаredirect=— делегирование полному SPF другого доменаКвалификаторы (префикс перед каждым механизмом)
+ (по умолчанию)Pass — авторизовано-Fail — отклонять неавторизованных отправителей~SoftFail — пометить как подозрительное, но не отклонять?Neutral — никаких утвержденийЧастые ошибки SPF и их решения
Слишком много DNS-запросов
«Разгладьте» (flatten) вашу запись SPF, заменив includes на чистые IP-адреса, или используйте сервис SPF flattening
Отсутствует сервис рассылки
Добавьте тег include: вашего сервиса (например, Mailchimp, Zendesk) в запись SPF
Несколько записей SPF
Разрешена только ОДНА TXT-запись, начинающаяся с v=spf1 — объедините их в одну
Пересланные письма (Forwarding)
SPF ломается при пересылке, так как IP сервера пересылки нет в вашем списке — это решает DKIM
Часто задаваемые вопросы
Запись TXT в DNS, содержащая список IP-адресов, которым разрешено отправлять почту от имени вашего домена.
Для защиты серверов лимит проверок ограничен 10. Превышение ведет к ошибке PermError. Используйте IP вместо имен хостов для оптимизации.
'~all' (мягкий отказ) помечает письмо как подозрительное, '-all' (жесткий отказ) требует от сервера отклонить письмо.
Из-за синтаксических ошибок, наличия нескольких записей SPF или превышения лимита в 10 запросов.
Нет, должна быть только одна запись 'v=spf1'. Несколько записей приведут к автоматическому сбою аутентификации.
Нет, он проверяет технический адрес Return-Path. Для защиты видимого адреса 'От' нужен DMARC.