Вимоги Gmail і Yahoo до масових відправників: DMARC, one-click unsubscribe і поріг спам-скарг 0,3%
З лютого 2024 Gmail і Yahoo відбивають та кидають у спам листи масових відправників, які не проходять три бар'єри одночасно: DMARC з вирівнюванням, робочий one-click unsubscribe за RFC 8058 і рівень спам-скарг нижче 0,3%. Розбираємо точні DNS-записи, заголовки, команди перевірки й типові помилки alignment — з позиції інженера, який це вже налаштовував у бою.
EvilMail Team11 липня 2026 р.11 хв читання
З лютого 2024 Gmail і Yahoo перестали ставитися до автентифікації пошти як до «доброї практики». Тепер це умова приймання. Якщо ви шлете 5000+ повідомлень на добу на адреси Gmail, а ваш домен не проходить три перевірки одночасно, отримувач бачить не інбокс, а один із трьох сценаріїв: 421 4.7.x tempfail із просьбою повторити пізніше, тихий м'який відбій частини трафіку або пряме потрапляння в папку «Спам» без жодного коду помилки. Найгірше те, що з боку відправника «начебто все налаштовано»: SPF є, DKIM підписує, а листи все одно тонуть.
Три бар'єри, які треба пройти разом, а не по черзі:
Автентифікація з DMARC-вирівнюванням — SPF і DKIM це передумова, DMARC із alignment це те, що реально перевіряють.
Робочий one-click unsubscribe за RFC 8058 — два заголовки і серверний POST-ендпоінт, а не посилання в підвалі.
Рівень спам-скарг нижче 0,3% у Google Postmaster Tools — усереднений, але сплеск в один день уже карає.
Далі — точні записи, заголовки й команди, а не переказ анонсу Google.
Вимоги Gmail і Yahoo до масових відправників 2024: DMARC, unsubscribe, спам 0,3% — EvilMail Blog
Хто такий «масовий відправник» і з якого дня це боляче
Поріг Gmail — 5000 повідомлень на добу на адреси Gmail. Три деталі, які всі пропускають. По-перше, лічильник сумарний по організаційному домену: піддомени news.example.com, billing.example.com і mail.example.com складаються в один рахунок під example.com. По-друге, поріг разовий — перетнули 5000 хоча б один день, і ви назавжди в категорії масових відправників, назад дороги немає. По-третє, Yahoo не називає числа взагалі: у них «bulk sender» визначається якісно, тож розраховувати на «я ще не дотягую до ліміту» не варто.
Таймлайн ужорсталення виглядав так:
Лютий 2024 — старт вимог, Gmail і Yahoo почали перевіряти автентифікацію та DMARC.
Квітень 2024 — перехід від відбраковки невеликої частки трафіку до ширшого застосування; саме тут багато хто вперше побачив масові 421.
Червень 2024 — one-click unsubscribe став обов'язковим і функціональним, а не просто присутнім у заголовках.
І окремо про транзакційну пошту. Якщо листи «підтвердіть email» і «скидання пароля» йдуть з того ж домену, що й розсилки, вони під тим самим DMARC-контрактом. Порушене вирівнювання вб'є і їх — а транзакційка це саме те, що конче мусить доходити.
Автентифікація: SPF і DKIM — передумова, DMARC — те, що перевіряють
SPF плюс DKIM тепер обов'язковий мінімум, але сам факт їхньої валідності нічого не гарантує. Ключове — наявність DMARC-запису (достатньо p=none) і вирівнювання (alignment). Найпоширеніша причина відмов у моїй практиці: DKIM валідний, SPF pass, а DMARC все одно fail, бо домен у полі From не збігається з доменом підпису або return-path.
Мінімальний набір записів виглядає так:
dns
; SPF — тримайте у межах 10 DNS-lookup, жорсткий -all
example.com. IN TXT "v=spf1 include:_spf.mailprovider.com -all"
; DKIM — публічний ключ під вашим селектором
sel1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq...IDAQAB"
; DMARC — старт із p=none, але ОБОВ'ЯЗКОВО з rua для видимості
_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]; fo=1"
Що таке alignment на практиці. DMARC вважає лист автентифікованим, якщо збігається хоча б одна з двох пар доменів: домен у RFC5322.From з доменом d= у DKIM-підписі (DKIM alignment), або домен у From з доменом Return-Path/MAIL FROM (SPF alignment). Режим relaxed (за замовчуванням) вимагає збігу організаційного домену — news.example.com вирівнюється з example.com. Режим strict вимагає точного збігу рядок-у-рядок.
Висновок із діаграми простий: якщо ви шлете через ESP, який підписує DKIM своїм доменом (d=mailprovider.com), а From у вас власний, DMARC впаде навіть при dkim=pass. Лікується це налаштуванням DKIM на вашому домені (провайдер дає CNAME-делегування селектора) і кастомним return-path на піддомені example.com.
One-click unsubscribe за RFC 8058: два заголовки, а не один
Найчастіша помилка — залишити тільки List-Unsubscribe і вважати, що все зроблено. З червня 2024 потрібна пара заголовків і працюючий POST-ендпоінт, який відписує людину за ≤2 дні без підтверджень, форм і логінів.
Коли користувач тисне «Відписатися» в інтерфейсі Gmail, поштовик сам робить HTTP POST на URL із List-Unsubscribe, з тілом application/x-www-form-urlencoded і вмістом List-Unsubscribe=One-Click. Ваш ендпоінт має прийняти цей POST, поставити статус unsubscribed і повернути 200 або 202. Жодних сторінок, редіректів чи «ви впевнені?».
Типові фейли, через які Gmail вважає, що one-click не працює: посилання приймає тільки GET; за посиланням стоїть форма з капчею; замість відписки редірект на сторінку логіну; або POST відпрацьовує, але статус фактично не змінюється і людина далі отримує листи. mailto:-варіант у першому заголовку залишайте — це фолбек для клієнтів без one-click, але саме HTTPS-ендпоінт має бути бойовим.
Поріг скарг 0,3%: як його бачить Google і чому 0,1% — реальна ціль
Метрика називається User-reported spam rate і живе в Google Postmaster Tools. Правило Google — «ніколи не перевищувати 0,3%». Формулювання підступне: поріг усереднений по вікну, але сплеск в один день уже карає репутацію домену, і відкат займає тижні.
Порахуймо, наскільки це мало. 0,3% від 100 000 доставлених = 300 скарг. Триста людей, які натиснули «Спам». На великій розсилці це набирається за годину при поганому списку. Тому 0,3% — це стеля, а не ціль. Робочий орієнтир, який я тримаю в проді: менше 0,1%. Щойно ви бачите в Postmaster Tools стабільні 0,2–0,3%, вважайте, що вас уже пресингують і частина трафіку йде в спам, просто ви цього ще не помітили по відкриттях.
Що реально збиває спам-рейт:
Гігієна списку. Ніякого купленого чи скрапленого. Тільки явна згода, бажано double opt-in із логом IP і часу.
Sunset-політика. Хто не відкривав 90–180 днів — виводимо з активної розсилки. Мертві контакти не приносять кліків, зате приносять скарги.
Прогрів (warm-up). Новий домен/IP не заливають одразу 100k. Нарощуйте обсяг поступово протягом 2–4 тижнів.
Сегментація за engagement. Активним — частіше, «сплячим» — рідше й із реактиваційним контентом.
Окремо про Yahoo: у них своя система, і User-reported spam rate з Google туди не зазирає. Підключайте Complaint Feedback Loop (CFL) через їхню форму реєстрації — це дасть вам потік скарг від Yahoo-користувачів, щоб чистити список так само, як за Gmail.
Перевірка перед розсилкою: команди, які я реально ганяю
Спочатку перевіряємо, що всі три записи резолвляться і виглядають правильно:
bash
# DMARC — має бути рівно один запис, з rua
dig +short TXT _dmarc.example.com
# SPF — один рядок, закінчується -all, без +all
dig +short TXT example.com | grep spf1
# DKIM — публічний ключ під вашим селектором
dig +short TXT sel1._domainkey.example.com
# PTR / reverse DNS для sending IP — має вказувати на ваш mail-хост
dig +short -x 203.0.113.10
Далі — тестове відправлення з правильними заголовками через swaks:
Ключове тут не просто три pass, а header.from=example.com поруч із header.d=example.com — саме це підтверджує alignment. Якщо dkim=pass header.d=mailprovider.com, а header.from=example.com, DMARC покаже fail попри pass на DKIM, і ви впіймали ту саму помилку з першої діаграми. Заодно переконайтеся, що з'єднання йшло по TLS (swaks покаже handshake), а HELO/EHLO вашого сервера — це валідне FQDN, яке резолвиться назад на той самий IP, що й PTR.
Чекліст перед першою масовою розсилкою
SPF опубліковано, закінчується на -all, у межах 10 DNS-lookup.
DKIM підписує з d= на вашому домені; підпис покриває заголовок From.
DMARC опубліковано (мінімум p=none) з rua= для звітів і fo=1.
Alignment підтверджено в Authentication-Results: header.from збігається з header.d або з доменом return-path.
List-Unsubscribe + List-Unsubscribe-Post присутні в кожному листі розсилки.
POST-ендпоінт відписки повертає 200/202, працює без логіну й капчі, обробляє за ≤2 дні.
PTR для sending IP налаштовано і резолвиться на валідне FQDN; HELO/EHLO збігається.
TLS увімкнено на транспорті.
Google Postmaster Tools підключено; домен верифіковано; спам-рейт < 0,1%.
Yahoo CFL зареєстровано окремо.
Sunset-політика активна: неактивні 90–180 днів виведені з розсилки.
Тестова відправка на seed-адреси Gmail/Yahoo пройдена, заголовки перевірені вручну.
Ці вимоги не зникнуть і не пом'якшаться — навпаки, планка повзе вниз, і під неї потрапляють дедалі менші відправники. Дешевше налаштувати DMARC-вирівнювання і чесний one-click один раз, ніж місяцями витягувати домен зі спаму після того, як репутація вже просіла.