Доставляемость и DNS

Настройка SPF: пошаговое руководство с примерами сервисов

Автор: Alexey Bulygin
Схема настройки DNS TXT-записи SPF для аутентификации электронной почты

Настройка 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 -all
v=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-записи.
includeinclude:domain.comПроверяет SPF-политику провайдера. Учитывается в лимите 10 элементов, требующих DNS-запросов.
ip4ip4:203.0.113.0/24Разрешает IPv4-адрес или диапазон CIDR напрямую, без DNS-запроса.
ip6ip6:2001:db8::/32То же для IPv6.
-all-allFail для неавторизованного отправителя. Решение об отказе принимает получатель.
~all~allSoftFail для неавторизованного отправителя. Может подходить для переходного периода, но не гарантирует прием.

Шаг 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 или другого сервиса.

  1. Тип: TXT
  2. Хост/имя: @ (или пустое поле, в зависимости от провайдера)
  3. Значение: полная строка SPF, например v=spf1 include:spf.trekmail.net -all
  4. 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-кэширование и сложные пути отправки могут потребовать больше времени.

  1. Перечислены все сервисы, отправляющие почту от домена
  2. Подтверждено, что существующих SPF-записей нет или есть одна, а не две
  3. Собрана одна строка v=spf1 со всеми необходимыми провайдерами
  4. Она опубликована как TXT у @ с TTL 3600
  5. Существующая запись обновлена без пробела в публикации, дубликаты удалены после объединения
  6. Выполнена проверка dig txt yourdomain.com +short
  7. Подтверждена ровно одна запись с началом v=spf1 и осознанно выбранным окончанием -all

Упростите настройку DNS. Начните отправлять с TrekMail.

Поделиться статьёй

Мы используем необходимые технологии для работы и защиты TrekMail. Подтверждая это, вы также разрешаете ограниченную аналитику и измерение рекламы, описанные в Политике cookie.

Вход в TrekMail

Доступ к панели, ящикам и DNS.

или

12 символов пароли совпадают

или

Письмо отправлено

Если для этого адреса есть аккаунт, мы отправили инструкции по сбросу пароля.

Продолжая, вы принимаете Условия и Политику конфиденциальности TrekMail.