Налаштування SPF, DKIM та DMARC для домена
Без SPF, DKIM та DMARC листи потрапляють у спам або відхиляються — особливо після лютого 2024, коли Google та Yahoo ввели обов'язкову перевірку для відправників понад 5000 листів на день. Налаштування займає 1–2 години, але потребує розуміння механізму.
SPF — Sender Policy Framework
SPF-запис перераховує сервери, яким дозволено відправляти листи від імені домена. Перевіряється за IP відправляючого сервера.
DNS TXT-запис для example.com:
v=spf1 include:sendgrid.net include:amazonses.com ip4:203.0.113.10 ~all
Синтаксис механізмів:
-
include:domain— включити SPF-політику іншого домена (для ESP) -
ip4:x.x.x.x— дозволити конкретний IP (власний SMTP) -
~all— softfail (підозріло, але не блокувати) -
-all— hardfail (блокувати все інше)
Важливо: Максимум 10 DNS-lookup. include: триггерить lookup для кожного домена — якщо перевищити, SPF сломається.
DKIM — DomainKeys Identified Mail
DKIM додає цифровий підпис до кожного листа. Одержувач перевіряє підпис за публічним ключем в DNS.
Генерація ключової пари (для власного SMTP/Postfix):
openssl genrsa -out dkim_private.pem 2048
openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem
DNS TXT-запис:
default._domainkey.example.com TXT "v=DKIM1; k=rsa; p=<base64-public-key>"
Для ESP (Resend, SendGrid, Mailgun) — вони самі генерують пару та дають вам готові DNS-записи через дашборд.
DMARC — Domain-based Message Authentication
DMARC визначає політику для листів, які не пройшли SPF/DKIM:
_dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100; adkim=r; aspf=r"
Параметри:
-
p=none— лише моніторинг, нічого не блокувати -
p=quarantine— помістити у спам -
p=reject— відхилити -
rua— адреса для агрегованих звітів (щодня, XML) -
pct=100— застосувати політику до 100% листів
Стратегія внедрення:
# Крок 1 — моніторинг
p=none; rua=mailto:[email protected]
# Крок 2 — через 2 тижня, переконавшись що законні листи проходять
p=quarantine; pct=10; rua=mailto:[email protected]
# Крок 3 — фінальна політика
p=reject; pct=100; rua=mailto:[email protected]
BIMI — Brand Indicators for Message Identification
Логотип у inbox Gmail/Apple Mail — додаткове налаштування після DMARC p=quarantine/reject:
default._bimi.example.com TXT "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/bimi.pem"
Логотип повинен бути у форматі SVG Tiny 1.2. Apple Mail потребує VMC-сертифікат від DigiCert/Entrust.
Перевірка налаштувань
-
MXToolbox —
mxtoolbox.com/spf.aspx,/dkim.aspx,/dmarc.aspx - mail-tester.com — відправити тестовий лист, отримати score
- Google Postmaster Tools — моніторинг репутації домена та IP у Gmail
- DMARC-аналітика — Valimail, Dmarcian, Postmark DMARC
Частові проблеми
SPF PermError (занадто багато DNS lookup): Використовувати SPF Flattening — замінити include: на конкретні IP-адреси через сторонні сервіси (AutoSPF, EasyDMARC).
DKIM verify failed: Перевірити, що ESP налаштований на підпис з потрібним selector та CNAME-записи додані в DNS.
DMARC не працює: SPF та DKIM повинні пройти вирівнювання (alignment) — домен у From: повинен збігатися з envelope-from (SPF) або d= у DKIM-підписі.
Строки реалізації
Налаштування SPF + DKIM + DMARC + перевірка — 1 день. З поступовим переходом на p=reject та моніторингом — 1–2 тижня спостережень.







