Перейти до змісту
Пошта Кабінет Обрати тариф

SPF, DKIM і DMARC: покрокове налаштування для домену

SPF, DKIM і DMARC: покрокове налаштування для домену

SPF, DKIM і DMARC: це три TXT-записи в DNS домену, які доводять поштовим сервісам, що лист справді надіслали ви, а не шахрай. SPF перелічує сервери, яким дозволено відправляти пошту від імені домену, DKIM ставить на кожен лист криптографічний підпис, а DMARC пояснює отримувачу, що робити з листом, який не пройшов перевірку, і надсилає вам звіти. Налаштування зводиться до трьох записів у DNS-зоні (@, selector._domainkey і _dmarc) та перевірки тестовим листом, і нижче ми пройдемо цей шлях крок за кроком з готовими прикладами.

Як ми перевіряли

Вимоги Gmail, Yahoo і Microsoft ми звірили з офіційними сторінками 30.10.2026: правила Google для відправників пошти, FAQ Google щодо цих правил, Yahoo Sender Hub і правила Outlook.com Postmaster. Дані про протоколи взято з RFC 7208 (SPF), RFC 6376 і 8301 (DKIM) та RFC 9989, 9990 і 9991 (DMARC) на rfc-editor.org. Усі приклади DNS використовують документаційний домен example.com і тестові діапазони IP 203.0.113.0/24 та 198.51.100.0/24.

Чому без SPF, DKIM і DMARC листи потрапляють у спам

Протокол SMTP сам по собі не перевіряє відправника: будь-який сервер може поставити в поле «Від» адресу info@example.com. Google і Yahoo з лютого 2024 року вимагають автентифікацію листів, а з листопада 2025 року Gmail посилює контроль за дотриманням цих вимог: листи, які їм не відповідають, отримують тимчасові та остаточні відмови в доставці. Microsoft з 5 травня 2025 року застосовує схожі правила до Outlook.com, Hotmail і Live: домени, які надсилають туди понад 5000 листів на добу, повинні мати SPF, DKIM і DMARC. Листи, що не відповідають вимогам, потрапляють у папку «Небажана пошта», а згодом можуть відхилятися з помилкою 550 5.7.515.

Станом на 30.10.2026 вимоги Gmail виглядають так:

Вимога Усі відправники на Gmail Масові відправники (близько 5000 листів на добу і більше)
SPF і DKIM SPF або DKIM SPF і DKIM
DMARC не обов’язковий, рекомендований обов’язковий, достатньо p=none
Домен From збігається з доменом SPF або DKIM не вимагається так
Прямий і зворотний DNS (PTR) для IP відправника так так
З’єднання через TLS так так
Скарги на спам у Postmaster Tools нижче 0,3% нижче 0,3%, бажано до 0,1%
Відписка в один клік не вимагається так, для маркетингових листів

Як працюють SPF, DKIM і DMARC разом

Кожен механізм перевіряє своє, і жоден окремо не захищає домен повністю:

  • SPF (RFC 7208) перевіряє, чи має IP-адреса сервера, що передає лист, право відправляти пошту від домену з конверта листа (MAIL FROM, у заголовках його видно як Return-Path). Адресу, яку людина бачить у полі «Від», SPF не перевіряє.
  • DKIM (RFC 6376) перевіряє цифровий підпис. Сервер підписує заголовки й текст листа закритим ключем, а отримувач бере відкритий ключ із DNS за адресою selector._domainkey.example.com і переконується, що лист не змінювали дорогою.
  • DMARC (RFC 9989, раніше RFC 7489) пов’язує обидві перевірки з адресою «Від». Лист проходить DMARC, якщо SPF або DKIM дали pass і домен, який вони перевірили, збігається з доменом у From. Це називається вирівнюванням (alignment). Якщо перевірка не пройдена, отримувач застосовує вашу політику: none, quarantine або reject.

Вирівнювання буває м’яким (relaxed, за замовчуванням) і суворим (strict). У м’якому режимі достатньо збігу основного домену: підпис з d=mail.example.com підходить для From: info@example.com. У суворому домени мають збігатися повністю.

Схема перевірки листа: SPF, DKIM, DMARC і рішення сервера-отримувача
DMARC зараховує лише ту перевірку, домен якої збігається з адресою у полі From
Запис Де розміщується Приклад значення Що перевіряє
SPF TXT на самому домені (@) v=spf1 include:_spf.google.com ~all IP сервера-відправника
DKIM TXT або CNAME на selector._domainkey v=DKIM1; k=rsa; p=MIIBIjAN… підпис і цілісність листа
DMARC TXT на _dmarc v=DMARC1; p=none; rua=mailto:dmarc@example.com збіг з доменом From, політика, звіти

Крок 1. З’ясуйте, хто надсилає пошту від вашого домену

Найчастіша причина проблем після ввімкнення DMARC: забутий відправник. Перш ніж редагувати DNS, складіть список усіх систем, які надсилають листи з адресами вашого домену:

  • поштовий сервер хостингу, тобто скриньки на кшталт info@example.com (про базове налаштування пошти на хостингу ми писали окремо);
  • Google Workspace, Microsoft 365 або Zoho Mail, якщо корпоративна пошта працює там;
  • сайт: WordPress, інтернет-магазин, форми зворотного зв’язку;
  • сервіс розсилок, CRM, система підтримки, облікові програми, що надсилають рахунки чи звіти.

Друге питання: де керується DNS. Записи треба додавати в зону на тих NS-серверах, на які делеговано домен, інакше їх ніхто не побачить. Перевірте це командою dig NS example.com +short і, якщо потрібно, розберіться, як працює делегування домену.

Крок 2. Налаштування SPF: синтаксис і готові приклади

SPF: це один TXT-запис на самому домені (ім’я @), який починається з v=spf1. Якщо ви ще плутаєтеся в типах записів, почніть з розбору DNS-записів A, CNAME, MX і TXT. Після версії йдуть механізми, що описують дозволених відправників, а наприкінці стоїть правило для всіх інших:

  • ip4:203.0.113.10 і ip6:2001:db8::1: конкретні адреси або підмережі;
  • a і mx: адреси з A- і MX-записів домену;
  • include:_spf.google.com: підключає SPF-запис іншого домену, так додають Google, Microsoft і сервіси розсилок;
  • -all (жорстка відмова), ~all (м’яка відмова, softfail), ?all (нейтрально) і +all (дозволити всім, ніколи так не робіть).
; Пошта лише на хостингу
example.com.  TXT  "v=spf1 a mx ip4:203.0.113.10 -all"

; Google Workspace
example.com.  TXT  "v=spf1 include:_spf.google.com ~all"

; Microsoft 365
example.com.  TXT  "v=spf1 include:spf.protection.outlook.com -all"

; Хостинг + Google Workspace + сайт на іншому сервері
example.com.  TXT  "v=spf1 mx ip4:198.51.100.7 include:_spf.google.com ~all"

; Домен, з якого пошта не надсилається взагалі
example.com.  TXT  "v=spf1 -all"

Головне правило: SPF-запис на домені має бути лише один. Якщо в зоні два рядки з v=spf1 (наприклад, один додала панель хостингу, а другий ви для Google), перевірка повертає permerror і SPF не проходить зовсім. Об’єднуйте всі механізми в один запис.

Ліміт у 10 DNS-запитів

Стандарт обмежує перевірку SPF десятьма механізмами, що потребують DNS-запиту: include, a, mx, ptr, exists і модифікатор redirect. Вкладені include теж рахуються, а ip4, ip6 і all ліміту не витрачають. Якщо запитів більше десяти, результат permerror, і для отримувача ваш SPF фактично не існує. Щоб вкластися в ліміт, приберіть include сервісів, якими вже не користуєтеся, замініть a і mx на ip4, не використовуйте застарілий ptr, а для сервісу розсилок налаштуйте окремий піддомен, наприклад news.example.com, зі своїм SPF.

~all чи -all

Різниця з’являється, коли лист прийшов з непереліченого сервера: -all просить відхилити його, ~all просить прийняти з позначкою підозрілого. Якщо налаштовано DMARC, остаточне рішення ухвалює його політика, тож обидва варіанти робочі. Поки список відправників не перевірено звітами DMARC, ставте ~all, а коли впевнені в ньому, переходьте на -all.

Крок 3. Налаштування DKIM: селектор, ключ і запис

Поштовий сервер створює пару ключів: закритий підписує листи, відкритий публікується в DNS як TXT-запис (деякі сервіси просять CNAME на свій запис). Ім’я запису складається із селектора і суфікса _domainkey, і в одного домену може бути кілька селекторів, по одному на кожну систему відправлення.

; TXT-запис з відкритим ключем, селектор mail
mail._domainkey.example.com.  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."

Довжина ключа: 2048 біт. RFC 8301 визнає ключі, коротші за 1024 біти, недійсними і рекомендує саме 2048. Такий ключ не вміщається в один рядок TXT (до 255 символів), тому його ділять на кілька рядків у лапках в межах одного запису. Більшість панелей роблять це самі, а при ручному копіюванні стежте, щоб у значенні p= не з’явилося пробілів, переносів або обрізаного кінця.

Де взяти DKIM-запис

  • Хостинг з панеллю керування. Під час додавання поштового домену панель зазвичай генерує DKIM-ключ, часто 2048-бітний із селектором mail. Якщо DNS-зона домену обслуговується тим самим сервером, запис mail._domainkey може додатися автоматично. Інакше скопіюйте відкритий ключ з налаштувань поштового домену й додайте запис там, куди делеговано домен.
  • Google Workspace. У консолі адміністратора відкрийте Apps > Google Workspace > Gmail > Authenticate email, виберіть домен, згенеруйте ключ 2048 біт (селектор за замовчуванням google), додайте TXT-запис google._domainkey і натисніть Start authentication. Без цього Gmail підписує листи технічним доменом Google, який не вирівнюється з вашим.
  • Microsoft 365. У порталі Microsoft Defender відкрийте Email & collaboration > Policies & rules > Threat policies > Email authentication settings > DKIM. Microsoft просить два CNAME-записи, selector1._domainkey і selector2._domainkey, а їхні точні значення показує портал: формат цілі для нових доменів змінився у 2025 році, тож не складайте його вручну. Після появи записів у DNS увімкніть підпис перемикачем.
  • Сервіс розсилок або CRM. У налаштуваннях відправника знайдіть розділ автентифікації власного домену: сервіс видасть один-два TXT або CNAME-записи для DKIM, а часто й піддомен для Return-Path.

Ключі бажано періодично змінювати, наприклад раз на 6-12 місяців, через новий селектор. Те саме стосується зміни провайдера: під час міграції пошти на інший хостинг новий сервер має власний ключ і IP, тому DKIM-запис треба замінити, а адресу в SPF оновити.

Крок 4. Налаштування DMARC: від спостереження до p=reject

DMARC-запис додають як TXT на піддомені _dmarc. Він складається з тегів, розділених крапкою з комою. Першим завжди йде v=DMARC1, а на практиці обов’язкова ще й політика p.

Тег Значення Що означає
v DMARC1 версія, завжди перший тег
p none, quarantine, reject політика: лише звіти, у спам або відхилити
sp none, quarantine, reject окрема політика для піддоменів
np none, quarantine, reject політика для неіснуючих піддоменів (тег з RFC 9989)
rua mailto:dmarc@example.com куди надсилати щоденні зведені звіти
ruf mailto:dmarc@example.com звіти про окремі збої (надсилають далеко не всі)
adkim, aspf r або s м’яке чи суворе вирівнювання, за замовчуванням r
t y або n тестовий режим з RFC 9989 замість застарілого pct
; Етап 1: лише спостереження і звіти
_dmarc.example.com.  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@example.com"

; Етап 2: листи, що не пройшли перевірку, ідуть у спам
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

; Етап 3: повний захист домену і піддоменів
_dmarc.example.com.  TXT  "v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc@example.com"

Не починайте одразу з p=reject. Перші 2-4 тижні тримайте p=none і читайте звіти: Gmail, Yahoo, Microsoft та інші великі сервіси надсилають на адресу з rua XML-файли з переліком IP, які відправляли листи від вашого домену, і результатами SPF та DKIM. Для їх читання зручно підключити аналізатор звітів DMARC. Коли всі легітимні джерела проходять перевірку, переходьте на quarantine, а ще через кілька тижнів на reject. Якщо звіти мають приходити на інший домен, його власник повинен дозволити це записом example.com._report._dmarc.reports.example.net TXT "v=DMARC1".

Покроковий план налаштування SPF, DKIM і DMARC від p=none до p=reject
Переходьте до наступного етапу, лише коли звіти не показують збоїв у легітимних листів

Типовий запис, який додають деякі панелі хостингу: v=DMARC1; p=quarantine; pct=100. Він підходить, якщо пошта йде лише з хостингу. Підключаєте Google Workspace чи сервіс розсилок? Спершу налаштуйте для них SPF і DKIM, інакше їхні листи підуть у спам.

У травні 2026 року IETF опублікувала оновлений стандарт DMARC (RFC 9989, звіти описано в RFC 9990 і 9991), який замінив RFC 7489. Запис і далі починається з v=DMARC1, і чинні записи працюють без змін. Тег pct отримав історичний статус, натомість з’явилися t=y (тестовий режим) і np, а основний домен тепер визначається обходом DNS-дерева замість списку публічних суфіксів.

Як перевірити SPF, DKIM і DMARC

Командний рядок

# Linux і macOS
dig +short TXT example.com | grep spf1
dig +short TXT mail._domainkey.example.com
dig +short TXT _dmarc.example.com

# Windows (cmd або PowerShell)
nslookup -type=TXT _dmarc.example.com
Resolve-DnsName -Type TXT mail._domainkey.example.com

Якщо команда нічого не повертає, запис ще не поширився (зачекайте час, заданий у TTL у DNS), доданий не в ту зону або має помилку в імені. Часта пастка: панель сама дописує домен до імені, і замість _dmarc.example.com виходить _dmarc.example.com.example.com, тому в полі імені пишіть лише _dmarc.

Заголовки тестового листа

Надішліть лист на скриньку Gmail, відкрийте його і в меню «Ще» виберіть «Показати оригінал». Угорі будуть рядки SPF, DKIM і DMARC зі статусом PASS. Повна картина міститься в заголовку Authentication-Results:

Authentication-Results: mx.google.com;
       dkim=pass header.i=@example.com header.s=mail;
       spf=pass (google.com: domain of info@example.com designates 203.0.113.10 as permitted sender) smtp.mailfrom=info@example.com;
       dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=example.com

Тут видно селектор DKIM (header.s), домен конверта (smtp.mailfrom) і домен From (header.from). Якщо dkim=pass, але підпис зроблено чужим доменом на кшталт d=sendservice.net, DMARC через нього не пройде: потрібен підпис саме вашим доменом. Для перевірки без командного рядка підійдуть MXToolbox (SPF, DKIM і DMARC Lookup, підрахунок DNS-запитів SPF), mail-tester.com (оцінка тестового листа) і Google Postmaster Tools (автентифікація і скарги для листів на Gmail).

Типові помилки SPF, DKIM і DMARC

Помилка Що бачить отримувач Як виправити
Два TXT-записи з v=spf1 spf=permerror Об’єднати механізми в один запис
Понад 10 DNS-запитів у SPF spf=permerror Прибрати зайві include, замінити a і mx на ip4, винести розсилки на піддомен
+all або ?all наприкінці SPF SPF не захищає домен Використовувати ~all або -all
Обрізаний ключ DKIM або пробіли в p= dkim=fail або dkim=neutral Скопіювати ключ повністю, розбити на рядки до 255 символів
Селектор у DNS не збігається з s= у підписі dkim=fail, ключ не знайдено Звірити header.s у заголовках з ім’ям запису
Сервіс розсилок підписує листи своїм доменом dmarc=fail при spf=pass і dkim=pass Налаштувати в сервісі власний домен для DKIM і Return-Path
Одразу p=reject без аналізу звітів листи CRM, сайту чи бухгалтерії зникають Почати з p=none і посилювати поступово
Сайт надсилає листи від адреси @gmail.com через PHP mail() відмова або папка «Спам» Відправляти з адреси свого домену через SMTP з автентифікацією

Окрема історія з пересиланням: коли скринька автоматично пересилає лист далі, IP-адреса вже не ваша і SPF ламається, тому DKIM потрібен обов’язково. На власному сервері перевірте ще PTR-запис IP і підтримку TLS. Масові розсилки багато хостерів обмежують. RichHost відправляє пошту з чистих IP, тож листи доходять до адресатів, а спамерів ми блокуємо. Проте розсилки все одно краще вести через окремий сервіс, щоб берегти репутацію домену; докладніше про це: у матеріалі про email-розсилки з хостингу.

Часті питання

Чи потрібні SPF, DKIM і DMARC, якщо я надсилаю кілька листів на день?

Так. Вимога Gmail мати SPF або DKIM стосується всіх відправників, а без DMARC будь-хто може підробити вашу адресу. Мінімальний набір налаштовується за пів години: SPF, DKIM від вашого поштового сервісу і DMARC з p=none та адресою для звітів.

Скільки часу набирають чинності нові записи?

Нові записи зазвичай видно за кілька хвилин, а зміну наявних видно після закінчення TTL старого значення, найчастіше за 1-4 години. Google попереджає, що DKIM у Workspace може запрацювати протягом 48 годин після додавання запису.

Чому DMARC показує fail, хоча SPF має статус pass?

SPF перевіряв домен конверта (Return-Path), а він відрізняється від домену у From, наприклад bounce.sendservice.net. DMARC зараховує лише вирівняний результат. Налаштуйте DKIM-підпис вашим доменом або власний Return-Path у сервісі, що відправляє листи.

Що прописати для домену, з якого пошта не надсилається?

Захистіть його від підробки двома записами: v=spf1 -all на самому домені і v=DMARC1; p=reject на _dmarc. За бажання додайте порожній DKIM-ключ *._domainkey TXT "v=DKIM1; p=", який прямо каже, що дійсних підписів у домену немає.

Записи правильні, а листи все одно йдуть у спам. Що далі?

Автентифікація дає лише допуск, далі вирішує репутація. Перевірте IP і домен у чорних списках (MXToolbox Blacklist Check), скарги в Postmaster Tools, посилання для відписки і чистоту бази. Новий домен «прогрівайте», нарощуючи обсяги поступово.

Висновок

Робоча схема: один SPF-запис з усіма відправниками, DKIM з ключем 2048 біт для кожного сервісу, DMARC спершу з p=none і звітами, потім quarantine і reject. Після кожної зміни перевіряйте записи командою dig і тестовим листом, а звіти DMARC переглядайте хоча б раз на місяць.

На тарифах віртуального хостингу RichHost пошта для домену є в кожному пакеті, кількість скриньок не обмежена, а листи йдуть із чистих IP. Якщо домену ще немає, його можна зареєструвати разом з хостингом і одразу налаштувати пошту за цією інструкцією.

Ще за темою

Усі статті
Як зареєструвати домен .ua і .com.ua у 2026: вимоги, ТМ, ціни
Домени та DNS05.10.2026

Як зареєструвати домен .ua і .com.ua у 2026: вимоги, ТМ, ціни

Покрокова інструкція, як зареєструвати домен .ua за торговельною маркою і .com.ua без документів: вимоги реєстру, приклади відповідності імені знаку, ціни станом на…

Скільки коштує SSL-сертифікат: Let’s Encrypt, DV, OV, EV і Wildcard
Тарифи та ціни19.09.2026

Скільки коштує SSL-сертифікат: Let’s Encrypt, DV, OV, EV і Wildcard

Скільки коштує SSL-сертифікат у 2026 році: безкоштовний Let's Encrypt проти платних DV, OV, EV і Wildcard. Ціни реселерів і центрів сертифікації, різниця…

Скільки коштує домен у 2026: ціни на реєстрацію і продовження
Домени та DNS13.09.2026

Скільки коштує домен у 2026: ціни на реєстрацію і продовження

Ціни на домени .ua, .com.ua, .com, .net, .org, .eu і .pl станом на вересень 2026: реєстрація, продовження, повна вартість за 5 років…