SPF запись: как создать и добавить в DNS домена — инструкция для новичка
SPF запись сообщает почтовым серверам, с каких адресов разрешено отправлять письма от имени вашего домена. Без неё письма чаще попадают в спам или отклоняются. В этой инструкции из блога HostingFAQ вы разберёте синтаксис, создадите запись в DNS (Domain Name System), проверите её и исправите типичные ошибки. Нужны доступ к панели домена и список ваших почтовых сервисов.

Коротко
- SPF (Sender Policy Framework) — это TXT-запись в DNS, которая перечисляет серверы, имеющие право отправлять почту от вашего домена
- Запись всегда начинается с v=spf1 и заканчивается механизмом all, например ~all или -all
- На домен допустима только одна SPF-запись: две записи v=spf1 дают ошибку проверки
- При проверке разрешено не больше 10 DNS-запросов: include, a, mx, redirect и exists учитываются в этом лимите
- Рекомендуемый TTL для новой записи — 3600 секунд (1 час); обновление обычно занимает от нескольких минут до нескольких часов
- Проверить запись можно командой nslookup -type=txt example.ru за 1 минуту
- SPF защищает от подделки адреса в конверте письма, но не заменяет DKIM и DMARC
Что такое SPF запись и зачем она нужна
SPF (Sender Policy Framework) — это запись типа TXT (текстовая запись) в DNS (системе доменных имён). Она перечисляет серверы, которым разрешено отправлять почту от имени вашего домена. Стандарт описан в RFC 7208 и действует с 2014 года.
Почтовый протокол сам не проверяет, кто написал адрес отправителя. Любой человек может указать в конверте письма info@example.ru, не имея доступа к вашему домену. Так устроены фишинговые рассылки от имени компаний.
Сервер получателя берёт IP-адрес отправителя и сверяет его со списком в SPF. Если адреса нет в списке, письмо уходит в спам или отклоняется. В итоге ваши настоящие письма реже попадают в спам, а домен труднее подделать. SPF проверяет адрес в конверте (Return-Path), а не видимое поле From.
Вот пример записи для домена example.ru, которая читается слева направо:
v=spf1— версия протокола, с неё начинается любая запись;ip4:203.0.113.10— разрешён сервер с этим IPv4-адресом (узнайте, что такое IP-адрес);mx— разрешены серверы из MX-записей домена (настройте доменную почту);~all— остальные отправители получают мягкий отказ.
Если почту вы отправляете со своего сервера, изучите ответы на вопросы о VPS и заранее определите, какой IP-адрес внести в запись.
Как работает проверка SPF при получении письма
Проверка идёт автоматически и занимает доли секунды. Сервер-получатель берёт домен из адреса отправителя в конверте письма, то есть из поля Return-Path, а не из видимого поля From. Затем он запрашивает в DNS TXT-запись этого домена, например example.ru, и ищет строку, которая начинается с v=spf1.
Дальше сервер сравнивает IP-адрес (Internet Protocol) отправителя, скажем 203.0.113.10, со списком из записи v=spf1 ip4:203.0.113.10 mx ~all. Узнать свой внешний IP-адрес можно за минуту, а как серверы обмениваются данными, объясняет материал про сетевой протокол. Подмену видимого From SPF не ловит: для этого нужен DMARC.
Результат проверки — один из четырёх:
pass: адрес разрешён, письмо проходит;fail: адрес запрещён при-all(жёсткий отказ), письмо обычно отклоняют;softfail: адрес не указан при~all(мягкий отказ), письмо чаще принимают, но с подозрением на спам;neutral: владелец домена не дал оценки, например при?all.
Для запуска подходит ~all, а -all включают после проверки всех отправителей. Ещё одно ограничение: на проверку отводится не больше 10 DNS-запросов. В лимит входят include, a, mx, ptr, exists и redirect, а ip4 и ip6 не входят, потому что адрес записан прямо. При превышении лимита получатель вернёт ошибку permerror.

Из чего состоит SPF запись: синтаксис и механизмы
SPF (Sender Policy Framework) хранится в DNS как одна строка типа TXT на самом домене. Она начинается с v=spf1, затем идут механизмы, а в конце стоит all. Для домена example.ru типичная запись выглядит так: v=spf1 ip4:203.0.113.10 mx ~all.
Читайте строку слева направо. v=spf1 задаёт версию, ip4:203.0.113.10 разрешает отправку с этого IP-адреса (Internet Protocol), mx разрешает серверы из MX-записей домена, а ~all помечает всех остальных как подозрительных. Как устроены адреса, разберёте в материале о белых и серых IP-адресах. Значения для почты Яндекса смотрите в инструкции по DNS для Яндекс 360.
| Элемент | Что делает | Пример |
|---|---|---|
ip4, ip6 |
Разрешает адрес или сеть | ip4:203.0.113.10 |
a, mx |
Разрешает адреса A-записи или MX-серверов домена | mx |
include |
Подключает SPF другого сервиса | include:_spf.example.net |
redirect |
Берёт правила целиком у другого домена | redirect=_spf.example.net |
all |
Задаёт правило для всех остальных | ~all |
+, -, ~, ? |
Квалификатор: разрешить, запретить, мягкий отказ, нейтрально | -all |
При проверке разрешено не больше 10 DNS-запросов. В этот лимит входят include, a, mx, redirect и exists, а ip4 и ip6 не входят. Одна текстовая строка в TXT не длиннее 255 символов, поэтому длинную запись делят на несколько строк в кавычках.
Как добавить SPF запись в DNS домена: пошаговая инструкция
SPF-запись создаётся один раз и занимает около 10 минут вместе с проверкой. Главное — заранее собрать всех, кто отправляет письма от вашего домена, иначе часть писем попадёт в спам. Дальше везде используется домен example.ru и адрес сервера 203.0.113.10.
Если вы управляете DNS (Domain Name System) через панель регистратора, подробности интерфейса есть в материале о панели управления доменом. Если почту и сайт вы держите на своём сервере, пригодится раздел о VPS, где разобраны вопросы по серверам.
Чтобы добавить запись, выполните шаги по порядку:
- Составьте список отправителей: почтовый сервис, сайт с формами, сервис рассылок, собственный сервер.
- Возьмите у каждого сервиса значение
includeили IP-адрес. Для своего сервера это, например,ip4:203.0.113.10. - Откройте управление DNS у регистратора или хостера.
- Создайте запись типа
TXTс именем@и значениемv=spf1 ip4:203.0.113.10 mx ~all. - Поставьте TTL (Time To Live, время жизни записи)
3600секунд, то есть 1 час. - Сохраните запись. Обновление обычно занимает от нескольких минут до нескольких часов, иногда до 24 часов.
- Проверьте результат командой
nslookup -type=txt example.ru. В ответе должна появиться строка, начинающаяся сv=spf1.
Режим ~all (мягкий отказ) подходит для запуска. Жёсткий отказ -all включайте после того, как убедитесь, что учли всех отправителей.
Если на домене уже есть запись v=spf1, не создавайте вторую: две SPF-записи дают ошибку permerror. Добавьте новые механизмы в существующее значение, например include:_spf.service.example, и оставьте один all в конце. Помните про лимит в 10 DNS-запросов на проверку: include, a и mx его расходуют, а ip4 нет.
Для почты на Yandex 360 значения берите по инструкции про DNS-записи Yandex 360, а общие принципы описаны в статье про Yandex DNS.

Как проверить SPF запись после настройки
Запись проверяют командой в терминале. На Windows, macOS и Linux работает nslookup -type=txt example.ru, на macOS и Linux также dig TXT example.ru +short. Проверка занимает около 1 минуты. Если терминал вам незнаком, начните с материала о работе с Linux на сервере.
В ответе найдите одну строку, которая начинается с v=spf1, например v=spf1 ip4:203.0.113.10 mx ~all. Две такие строки дают ошибку permerror, поэтому лишнюю удалите. Если строки нет или виден старый вариант, запись ещё не обновилась. Обычно это занимает от нескольких минут до нескольких часов, иногда до 24 часов: при TTL (Time To Live) 3600 секунд старый ответ может храниться в кэше до 1 часа.
Затем отправьте проверочное письмо с адреса на example.ru на другой почтовый ящик и откройте исходный код письма. Адрес сервера-отправителя сверьте через проверку IP-адреса. В заголовках Received-SPF или Authentication-Results ищите один из результатов:
pass— отправитель разрешён, настройка верна;softfail— сервера нет в записи, письмо доходит с пометкой при~all;fail— сервер запрещён при-all;permerror— ошибка в самой записи, например две записи v=spf1.

Частые ошибки в SPF записи и как их исправить
SPF (Sender Policy Framework) ломается по одним и тем же причинам. Чаще всего встречаются шесть ошибок: две записи на домене, превышенный лимит запросов, забытый отправитель, опечатки в синтаксисе, слишком ранний режим -all и неверный тип записи.
После любой правки подождите обновления DNS: обычно от нескольких минут до нескольких часов. Затем проверьте результат командой dig TXT example.ru +short.
1. Две SPF-записи на домене
Каждый сервис просит добавить свою строку v=spf1, и на домене появляется две записи. Проверка завершается ошибкой permerror. Объедините всё в одну запись: v=spf1 ip4:203.0.113.10 mx include:spf.sender.example ~all. Лишние строки удалите.
2. Превышен лимит в 10 DNS-запросов
В лимит входят include, a, mx, ptr, exists и redirect. Удалите include от сервисов, которыми вы больше не пользуетесь. Если у сервиса постоянный адрес, замените include на ip4: он в лимит не входит.
3. Забыт отправитель
Рассылка, CRM и форма на сайте отправляют письма со своих серверов. Если их нет в записи, письма уходят в спам или отклоняются. Найдите в справке сервиса его include или IP-адрес и добавьте в запись. Общую схему настройки почты разбирает материал настройте доменную почту по инструкции.
4. Опечатки в синтаксисе
Запись должна начинаться с v=spf1, механизмы разделяются одним пробелом, в конце стоит all. Лишний пробел в начале, v=spf1 в середине или отсутствие all делают запись недействительной. Перепишите строку целиком. Одна текстовая строка в TXT не длиннее 255 символов, длинные записи делят на несколько строк в кавычках.
5. Режим -all включён слишком рано
При -all письма от забытого отправителя будут отклонены. Начните с ~all (мягкий отказ). Переключайтесь на -all, когда проверите всех отправителей.
6. Запись создана как SPF вместо TXT
Отдельный тип SPF устарел, и почтовые серверы его не читают. Удалите такую запись и создайте новую типа TXT с именем @ и TTL 3600 секунд.
Обычно хватает одной проверки: одна TXT-запись, не больше 10 запросов, все отправители в списке. Начните с ~all, и письма не потеряются.
SPF, DKIM и DMARC: чем отличаются и что настроить вместе
Три механизма решают разные задачи и работают только вместе. SPF (Sender Policy Framework) проверяет, что письмо пришло с разрешённого IP-адреса. DKIM (DomainKeys Identified Mail) проверяет цифровую подпись письма. DMARC (Domain-based Message Authentication, Reporting and Conformance) задаёт, что делать с письмом, если проверки не прошли.
SPF смотрит на адрес в конверте (Return-Path), а не на видимое поле From. Поэтому без DMARC SPF не защищает From: злоумышленник подставит ваш адрес в это поле, и письмо может дойти. DMARC требует, чтобы домен в From совпадал с доменом, прошедшим SPF или DKIM.
| Механизм | Где хранится | Пример значения | Что проверяет |
|---|---|---|---|
| SPF | TXT на домене example.ru |
v=spf1 ip4:203.0.113.10 mx ~all |
IP-адрес отправителя |
| DKIM | TXT на default._domainkey.example.ru |
v=DKIM1; k=rsa; p=… |
Подпись письма публичным ключом |
| DMARC | TXT на _dmarc.example.ru |
v=DMARC1; p=none; rua=mailto:dmarc@example.ru |
Политику и отчёты |
Настраивайте в таком порядке:
- Опубликуйте SPF-запись и проверьте её командой
dig TXT example.ru +short. - Включите DKIM в почтовом сервисе и добавьте выданный ключ в DNS.
- Добавьте DMARC с политикой
p=none: письма не блокируются, вы только получаете отчёты. - Через 2–4 недели проверьте отчёты и ужесточите политику до
quarantine, затем доreject.
Как вносить записи, зависит от DNS-хостинга: см. инструкции для DNS в Яндекс 360 и для Cloudflare.
Когда одного SPF недостаточно и кому настройка не нужна
SPF (Sender Policy Framework) закрывает только часть угроз. Запись проверяет адрес отправителя в конверте (Return-Path), а не видимое поле From, поэтому мошенник может подделать имя в письме и пройти проверку. Для защиты From нужен DMARC. SPF также не шифрует почту: содержимое защищает только транспортное шифрование между серверами.
Вторая слабость — пересылка. Когда сервер пересылает письмо дальше, получатель видит IP-адрес пересылающего сервера, которого нет в вашей записи, и SPF выдаёт отказ. От этого помогает DKIM: его подпись переживает пересылку.
Если с домена не отправляют почту, например с парковочного или редиректного, поставьте запрет для всех: v=spf1 -all. Если у вас много внешних сервисов (рассылки, CRM, поддержка), следите за лимитом в 10 DNS-запросов: каждый include может добавлять свои вложенные запросы, а ip4 и ip6 в лимит не входят.
Чтобы не упереться в лимит, действуйте так:
- уберите сервисы, которыми вы больше не пользуетесь;
- замените
aиmxнаip4, если адрес постоянный; - держите в домене ровно одну запись
v=spf1.
Если планируете почтовый сервер на VPS, вам понадобится собственный IP, а не общий. Прочитайте, как арендовать виртуальный сервер и зачем нужен белый IP, а ответы на частые вопросы собраны на странице о VPS. Для такого сервера настраивают все три записи: SPF, DKIM и DMARC.
Частые вопросы
Что такое SPF запись простыми словами?
Какой тип DNS-записи нужен для SPF: TXT или SPF?
Сколько SPF записей можно добавить на один домен?
Чем отличается ~all от -all в SPF?
Что делать, если SPF превысил лимит в 10 запросов?
Как быстро SPF запись начинает работать?
Как проверить SPF запись домена?
Нужна ли SPF запись, если почта размещена у Яндекса или другого сервиса?
Что писать в SPF для домена, с которого не отправляют почту?
SPF защищает от спама полностью?
Проверьте себя
- В DNS домена создана одна TXT-запись, начинающаяся с v=spf1
- В записи учтены все отправители: почтовый сервис, сайт, рассылки, свой сервер
- Количество DNS-запросов в записи не превышает 10
- Запись заканчивается механизмом all: сначала ~all, после проверки при необходимости -all
- TTL выставлен в 3600 секунд, после сохранения прошло достаточно времени на обновление
- Команда nslookup -type=txt example.ru возвращает вашу запись
- Рядом настроены DKIM и DMARC
На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.