Настройка SPF-записи важна для проверки отправителя принимающим сервером, но SPF не является единственной или обязательно первой проверкой. Ошибки могут привести к отказу в доставке; код SMTP 550 5.7.26 сам по себе не доказывает проблему с SPF. С февраля 2024 года действуют требования Google и Yahoo к аутентификации, применимость которых зависит, в частности, от объема отправки и сервиса получателя.
Частые проблемы: дублирующиеся записи, превышение лимита 10 элементов, вызывающих DNS-запросы, и неподходящий завершающий квалификатор. Они могут мешать доставке и оставаться незамеченными днями, а уведомление об отказе не всегда понятно объясняет причину.
В этом руководстве разобрана настройка SPF: синтаксис, примеры для TrekMail с Managed SMTP и BYO, публикация в DNS и проверка из командной строки. Если почта домена еще не настроена, начните с настройки почты на своем домене, а затем добавьте аутентификацию.
Что делает SPF
SPF (Sender Policy Framework) публикует в DNS TXT-запись с правилами авторизации почтовых серверов домена. Получатель может сопоставить IP отправляющего сервера с этой политикой. Если адрес не подходит, результат зависит от квалификатора; решение о приеме письма остается за получателем. Согласно RFC 7208, SPF проверяет идентификатор MAIL FROM, то есть отправителя конверта, а не видимый адрес в заголовке From.
Без SPF получателю недоступен этот опубликованный список разрешенных отправителей конверта. В применимых случаях SPF проверяет также идентификатор HELO; отсутствие политики не предписывает автоматический отказ. Другие проверки по-прежнему возможны. Для DMARC в общем случае достаточно успешного SPF или действительной подписи DKIM с доменом, согласованным с видимым From. SPF не устраняет все виды подмены и не гарантирует попадание во входящие.
Правило одной записи
Для одного имени в DNS допускается только одна ресурсная TXT-запись SPF. Две такие записи, начинающиеся с v=spf1, вызывают PermError. Несколько строк в кавычках внутри одной ресурсной записи, напротив, объединяются в одно значение. Получатель может отклонить письма при PermError, но отказ для всей почты не предопределен. Дубликаты могут появиться при смене провайдера или подключении маркетингового сервиса.
| Неверно: две отдельные записи | Верно: одна объединенная запись |
|---|---|
v=spf1 include:spf.trekmail.net -allv=spf1 include:_spf.google.com -all |
v=spf1 include:spf.trekmail.net include:_spf.google.com -all |
Редактируйте существующую SPF-запись, объединяя все нужные разрешения. Не удаляйте ее заранее, пока замена не готова: иначе в опубликованной политике может возникнуть пробел.
Шаг 1: составьте список всех отправляющих сервисов
До изменения DNS перечислите все сервисы, отправляющие почту как @yourdomain.com. Если забытый сервис использует ваш домен в MAIL FROM, после публикации -all его письма могут получить SPF Fail. Пять минут на инвентаризацию служат лишь примером планирования, а не фиксированной длительностью; внимательная проверка может сэкономить часы последующей диагностики. Отклонение письма зависит от политики получателя.
Типичные отправители:
- Корпоративная почта: TrekMail, Google Workspace, Microsoft 365
- Транзакционные письма: Amazon SES, SendGrid, Mailgun, Postmark
- Маркетинг: Mailchimp, HubSpot, Klaviyo, Brevo
- SaaS-сервисы: Zendesk, Freshdesk, Shopify, Intercom
Некоторые сервисы используют собственный домен Return-Path, например bounce.mailchimp.com, и тогда не требуют включения в SPF вашего домена. Другие используют отправителя конверта на вашем домене для согласования DMARC. Проверьте документацию провайдера и фактические настройки аккаунта.
Шаг 2: соберите SPF-запись
SPF представляет собой ресурсную TXT-запись DNS, строки которой при необходимости объединяются. Общая структура одинакова, а механизмы выбираются под ваши пути отправки. Приведенные диапазоны адресов предназначены для документации, а не для реальных серверов отправки. Вот назначение основных частей:
| Компонент | Пример | Назначение |
|---|---|---|
| Версия | v=spf1 | Обязательное начало SPF-записи. |
| include | include:domain.com | Проверяет SPF-политику провайдера. Учитывается в лимите 10 элементов, требующих DNS-запросов. |
| ip4 | ip4:203.0.113.0/24 | Разрешает IPv4-адрес или диапазон CIDR напрямую, без DNS-запроса. |
| ip6 | ip6:2001:db8::/32 | То же для IPv6. |
| -all | -all | Fail для неавторизованного отправителя. Решение об отказе принимает получатель. |
| ~all | ~all | SoftFail для неавторизованного отправителя. Может подходить для переходного периода, но не гарантирует прием. |
Шаг 3: настройка SPF для разных провайдеров
Выберите подходящий сценарий. Ниже приведены примеры: перед публикацией сверьтесь с актуальной документацией и настройками аккаунта. Если провайдеров несколько, объедините механизмы include в одной записи.
Сценарий A: TrekMail Managed SMTP (тарифы Starter и Agency)
Если ваш текущий тариф TrekMail включает Managed SMTP и только этот сервис отправляет почту с данным доменом конверта, SPF-запись может выглядеть так:
v=spf1 include:spf.trekmail.net -all
Она подключает опубликованную политику TrekMail. Другие отправляющие сервисы тоже необходимо учесть.
Сценарий B: TrekMail BYO SMTP (бесплатный тариф или собственная конфигурация)
Если TrekMail обслуживает почтовый ящик, а для исходящей почты подключен ваш SMTP-провайдер, авторизуйте его по его документации. Важны IP последнего сервера доставки и фактический домен отправителя конверта.
# Amazon SES
v=spf1 include:amazonses.com -all
# SendGrid
v=spf1 include:sendgrid.net -all
Сценарий C: Google Workspace
v=spf1 include:_spf.google.com -all
Сценарий D: Microsoft 365
v=spf1 include:spf.protection.outlook.com -all
Сценарий E: TrekMail и маркетинговая платформа
Используете TrekMail для команды, а HubSpot для рассылок? Объедините разрешения в одной записи, если оба сервиса используют этот домен в MAIL FROM:
v=spf1 include:spf.trekmail.net include:456789.spf05.hubspotemail.net -all
Значение include у HubSpot привязано к вашему порталу. Возьмите его из DNS-настроек HubSpot, а не копируйте номер из примера.
Шаг 4: опубликуйте запись в DNS
Разместите политику как TXT-запись у DNS-провайдера вашего домена: Cloudflare, Namecheap, GoDaddy, Route 53 или другого сервиса.
- Тип: TXT
- Хост/имя:
@(или пустое поле, в зависимости от провайдера) - Значение: полная строка SPF, например
v=spf1 include:spf.trekmail.net -all - TTL: 3600 (1 час)
Если SPF-запись уже есть, обновите ее вместо добавления второй. Сохраните нужные разрешения и не создавайте пробел преждевременным удалением. После изменения проверьте, что SPF-запись ровно одна.
Шаг 5: проверьте SPF-запись
Проверьте публикацию из командной строки. Эти команды показывают ответ используемого DNS-резолвера, который тоже может хранить данные в кэше. Ни командная строка, ни TTL не обходят все DNS-кэши.
# Mac, Linux, or Windows PowerShell
nslookup -q=txt yourdomain.com
# Linux/Mac alternative
dig txt yourdomain.com +short
Проверьте три пункта:
- Ровно одна TXT-запись начинается с
v=spf1 - Присутствуют все необходимые механизмы
include - Запись заканчивается на
-allили~allсогласно выбранной политике
Убедитесь, что перед вами отдельные ресурсные записи с v=spf1, а не несколько строк одной записи. Настоящие дубликаты удаляют после объединения всех нужных разрешений. Проверьте также рекурсивное вычисление SPF и реальные письма: публикация DNS сама по себе не подтверждает успешную проверку SPF, согласование DMARC или попадание во входящие.
Диагностика типичных ошибок SPF
Три распространенные проблемы помогут сузить поиск. Прежде чем делать вывод о причине, изучите полный ответ SMTP и результаты аутентификации.
1. Лимит 10 DNS-запросов (PermError)
SPF ограничивает число вычисляемых элементов, вызывающих DNS-запросы, до 10. В этот счет входят include, a, mx, exists, ptr и redirect, а также элементы рекурсивных проверок. Это не просто общее количество DNS-пакетов. Более 10 таких элементов дают PermError, после которого получатель может отклонить письмо.
Признак: валидатор возвращает PermError или «too many DNS lookups».
Решение: перенесите подходящие сервисы, например Mailchimp или Zendesk, на поддомен вроде support.yourdomain.com. Его отдельный лимит 10 элементов поможет только при фактическом использовании поддомена в MAIL FROM и правильной настройке его SPF. Политика основного домена тогда станет проще.
2. Личные почтовые ящики Microsoft (550 5.7.515)
При коде 550 5.7.515 прочитайте полное сообщение Microsoft. Нельзя автоматически считать SPF правильным, а репутацию IP виновной. Для подпадающей под требования массовой отправки в личные ящики Hotmail и Outlook.com должны успешно пройти и SPF, и DKIM, а также DMARC, для которого домен хотя бы одного успешного механизма согласован с From. Это не гарантирует попадание во входящие. О настройке см. основы безопасности корпоративной почты.
3. SoftFail (~all) и HardFail (-all)
| Квалификатор | Что он сообщает получателю | Когда использовать |
|---|---|---|
~all (SoftFail) | Отправитель, вероятно, не авторизован; обработку определяет получатель. | Например, первые 2-4 недели перехода, пока идет проверка отправителей. |
-all (HardFail) | Отправитель не авторизован; это не обязательная команда отклонить письмо. | После проверки всех легитимных отправителей, если выбрана более строгая политика. |
~all дает SoftFail, а ?all дает Neutral, то есть не сообщает, авторизован ли отправитель. Переходите на -all только после подтверждения всех законных путей отправки. DKIM, DMARC и политика получателя по-прежнему важны.
Настройка SPF с TrekMail
Работа с DNS и диагностика SMTP отнимают время. Если мастер SPF/DKIM/DMARC доступен в вашей текущей конфигурации TrekMail, он может помочь с настройкой Managed SMTP или BYO. Проверяйте предложенные значения для своего домена.
Агентствам с десятками клиентских доменов полезен единый порядок настройки. Панель управления несколькими доменами может упростить проверку ожидаемых записей DNS, но эти показатели не измеряют криптографическую аутентификацию, согласование доменов в реальных письмах или попадание во входящие. Подробнее: почтовый хостинг для нескольких доменов и создание почты на своем домене.
В исходном обзоре указаны $3.50 в месяц за Starter с Managed SMTP, Nano без платы с BYO SMTP, без кредитной карты и окончания пробного периода, а также 14-дневный пробный период платных тарифов с обязательной кредитной картой. В описанной модели Nano для всех исходящих писем, включая ответы, нужен собственный SMTP-провайдер; это не общее требование платных тарифов с правом на Managed SMTP. Цены, доступность и условия могут меняться: проверьте актуальное предложение. Попробовать TrekMail.
Полный чек-лист настройки SPF
Перед завершением пройдите семь шагов. Простую конфигурацию можно подготовить менее чем за 15 минут, но DNS-кэширование и сложные пути отправки могут потребовать больше времени.
- Перечислены все сервисы, отправляющие почту от домена
- Подтверждено, что существующих SPF-записей нет или есть одна, а не две
- Собрана одна строка
v=spf1со всеми необходимыми провайдерами - Она опубликована как TXT у
@с TTL 3600 - Существующая запись обновлена без пробела в публикации, дубликаты удалены после объединения
- Выполнена проверка
dig txt yourdomain.com +short - Подтверждена ровно одна запись с началом
v=spf1и осознанно выбранным окончанием-all
Упростите настройку DNS. Начните отправлять с TrekMail.