НОВИНА
Checkout Files Upload за WooCommerce приема файлове от всеки. Вижте дали Вашият е засегнат
Поща

Писмата Ви отиват в спам? Проверете SPF, DKIM и DMARC

# ЕтикетиПощаДомейни
Екипът на WPhost15 мин четене

Клиент не е получил офертата, която сте му изпратили. Запитванията от формата на сайта Ви попадат в папката „Спам“ на Вашия Gmail. Или писмата от info@primer.bg пристигат, но чак след като получателят ги извади оттам. Причината често е проста. Пощенският сървър отсреща не може да се увери, че писмото наистина идва от Вашия домейн, а за това му трябват три записа в DNS, известни като SPF, DKIM и DMARC.

В това ръководство ще видите какво изискват Gmail и Yahoo, какво прави всеки от трите записа и къде cPanel ги показва и поправя. После ще ги проверите с dig и с „Show original“ в Gmail и ще оправите писмата, които WordPress праща през формите на сайта.

Защо писмата от Вашия домейн отиват в спам

Когато писмо стигне до Gmail, сървърът на Gmail вижда само какво пише вътре. Там пише, че подателят е info@primer.bg, но това може да напише всеки. Затова получателят проверява в DNS на домейна кой има право да праща от негово име и дали подписът на писмото е истински. Ако няма какво да провери, писмото изглежда съмнително. Google пише на страницата си за подателите, че писма без такава проверка могат да отидат в спам или да бъдат отхвърлени с грешка 5.7.26.

На практика причините са малко. Домейнът няма запис за SPF или DKIM. Записът е добавен два пъти, а при SPF и DMARC двоен запис не се приема. Част от писмата излизат от услуга, която не е в SPF записа, например програма за бюлетини или за фактури. Или WordPress праща от адрес като wordpress@primer.bg, на който няма пощенска кутия.

За да се оправи това, не е нужно програмиране, а само няколко записа в DNS и един тест.

Какво изискват Gmail и Yahoo от подателите

Google описва изискванията на страницата „Email sender guidelines“. Те важат за писма към лични Gmail адреси, тоест към @gmail.com и @googlemail.com, и са в сила от 1 февруари 2024. От всеки подател Google иска:

  • SPF или DKIM за домейна, от който пращате.
  • Валидни прав и обратен DNS запис (PTR) за сървъра. Това се урежда на сървъра, а не във Вашия акаунт.
  • TLS връзка при предаването на писмата.
  • Под 0,3% от писмата да са отбелязани от получателите като спам, според Postmaster Tools.
  • Писма във формат по RFC 5322.
  • Без подправяне на Gmail адреси в полето „От“.

Масов подател е този, който праща около 5 000 или повече писма на ден към лични Gmail адреси. Масовите податели трябва да имат и SPF, и DKIM, да публикуват DMARC запис (политиката може да е none) и домейнът в „От“ да съвпада с домейна на SPF или на DKIM. Маркетинговите им писма трябва да позволяват отписване с един клик.

В „Email sender guidelines FAQ“ Google пише още, че от ноември 2025 правилата се прилагат по-строго. Писма, които не ги спазват, могат да бъдат отхвърляни временно или окончателно. Yahoo разделя изискванията по същия начин на страницата си за подателите. За всички е нужен SPF или DKIM, а за масовите податели и двата, както и DMARC политика поне p=none.

Малкият сайт не е масов подател, но общите изисквания важат и за него, а Google препоръчва и трите записа за всеки домейн.

Какво са SPF, DKIM и DMARC

Трите записа са обикновени TXT записи в DNS зоната на домейна. Всеки отговаря на друг въпрос. Примерите са за primer.bg. В панела на Вашия DNS ще попълните същите три неща, име, тип TXT и стойност, която е текстът в кавичките.

SPF казва кой има право да праща

SPF е списък на сървърите, които могат да пращат писма от Вашия домейн. Получателят взима IP адреса, от който е дошло писмото, и го търси в този списък. Записът е в корена на домейна.

DNS
; primer.bg, TXT запис в корена на домейна
primer.bg.  IN  TXT  "v=spf1 +a +mx +ip4:203.0.113.10 ~all"

v=spf1 показва, че това е SPF запис. +a и +mx допускат адреса на домейна и неговите пощенски сървъри, +ip4 добавя адреса на сървъра, а ~all означава, че всичко останало е съмнително, но не се отхвърля директно. Домейнът може да има само един SPF запис, а при два проверката завършва с грешка. Ако друга услуга праща от Ваше име, добавете нейния include (например include:spf.mailer.example) в същия запис. Спецификацията позволява най-много 10 DNS заявки, а при повече проверката дава грешка. В тях се броят include, a и mx.

DKIM е подписът върху писмото

DKIM е цифров подпис. Сървърът подписва всяко изходящо писмо със секретен ключ, който остава при него. Публичният ключ е в DNS и получателят проверява подписа с него. Така разбира, че писмото идва от домейна и не е променено по пътя.

DNS
; primer.bg, TXT запис за селектора default
default._domainkey.primer.bg.  IN  TXT  "v=DKIM1; k=rsa; p=ПУБЛИЧНИЯТ_КЛЮЧ"

Името има вида селектор._domainkey.домейн. Селекторът е първата му част, а cPanel Ви показва точната стойност. Тук default е само пример. За лични Gmail адреси Google изисква ключ от поне 1024 бита и препоръчва 2048.

DMARC казва какво да стане, ако проверката не мине

DMARC казва на получателя какво да направи с писмо от Вашия домейн, което не мине проверката, и къде да Ви изпраща отчети. Писмото минава, когато мине SPF или DKIM и домейнът, потвърден от проверката, съвпада с домейна в полето „От“.

DNS
; primer.bg, TXT запис на името _dmarc
_dmarc.primer.bg.  IN  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@primer.bg"

p=none означава „само наблюдение“, а rua е адресът за отчетите. И тук е допустим само един запис. Според RFC 9989 при няколко DMARC записа за едно име получателят отхвърля всички.

Къде cPanel показва и поправя записите

В cPanel отворете Email, после Email Deliverability. Таблицата показва състоянието на пощенските записи за всеки от домейните Ви, а до всеки домейн има два бутона.

С Repair cPanel поправя невалидните записи. Преди да потвърдите, виждате какво предлага и можете да копирате или промените предложения запис. След това cPanel проверява записите наново, което може да отнеме до пет минути. Manage отваря страница с раздели за DKIM, SPF, DMARC и обратния DNS (PTR).

Ако DNS зоната на домейна е другаде, например при регистратора или в Cloudflare, cPanel не може да я променя и Repair не е достъпен. Тогава в Manage натиснете Copy до предложения запис и го добавете на ръка там, където е зоната. Ако DNS панелът Ви не разделя сам дългите записи на части от по 255 знака, за DKIM ключа изберете View, после Split.

В раздела SPF бутонът Customize Ви позволява да добавите други услуги, които пращат от Ваше име (Include List). По подразбиране cPanel предлага ~all и е добре да остане така, докато не проверите всички източници на поща. В раздела DMARC бутонът Install the Suggested Record добавя записа автоматично, но само когато сървърът е авторитетният DNS сървър на домейна. DMARC записът действа само ако SPF и DKIM са валидни.

Ако не виждате Email Deliverability в cPanel, пишете на поддръжката на хостинга, защото той може да включва и изключва този раздел. Документацията на cPanel предупреждава още, че при някои настройки на сървъра DKIM може да не се проверява за писма, пратени от PHP приложения. Затова освен писмо от пощенска кутия пробвайте и писмо от формата на сайта.

Как да включите DMARC на етапи

Започнете с p=none. Google препоръчва точно това в началото, а после политиката постепенно да се затяга към quarantine или reject. Преди това SPF и DKIM трябва да работят, а Google съветва да изчакате 48 часа, след като ги настроите.

  1. Създайте в cPanel (Email Accounts) отделна кутия dmarc@primer.bg. Отчетите може да са много, затова Google препоръчва отделна кутия или група, а не личния Ви адрес.
  2. Добавете DMARC записа от по-горе с p=none и rua=mailto:dmarc@primer.bg.
  3. Следете отчетите. Спецификацията препоръчва получателите да ги изпращат поне веднъж на денонощие, а има услуги, които ги подреждат в таблица.
  4. Когато отчетите покажат, че всичко, което се праща от името на домейна, минава проверката, сменете p=none с p=quarantine. Така писмата, които не минат, отиват в спам при получателите, които спазват политиката.
DNS
; Сменяте само p. Записът е един, не добавяйте втори.
_dmarc.primer.bg.  IN  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@primer.bg"

Как да проверите записите с dig и с „Show original“ в Gmail

Първо вижте какво е публикувано в DNS.

Bash
# От Вашия компютър (macOS или Linux). Само чете, нищо не променя.
dig +short TXT primer.bg | grep spf1
dig +short TXT _dmarc.primer.bg
dig +short TXT default._domainkey.primer.bg

На Windows ползвайте nslookup -type=TXT primer.bg и същото за другите две имена. Трябва да има по един запис за SPF, за DMARC и за DKIM. Ако виждате два реда, които започват с v=spf1 или с v=DMARC1, записът е двоен и трябва да остане само един. Командата dig може да покаже дълъг DKIM ключ на няколко части в кавички и това е нормално. Ако за DKIM няма отговор, проверете в Manage какъв е Вашият селектор.

После направете истински тест. Изпратете писмо от пощенска кутия на домейна до личен Gmail адрес. В Gmail отворете писмото, натиснете трите точки до Reply (менюто More) и изберете Show original. Отваря се нов прозорец със заглавията на писмото. Намерете реда Authentication-Results и вижте какво пише след spf, dkim и dmarc.

Текст
# Authentication-Results в заглавията на писмо, получено в Gmail
spf=pass
dkim=pass
dmarc=pass

Трябва да видите три пъти pass. При SPF резултатите neutral, softfail и fail означават, че записът не разрешава IP адреса на подателя. Ако при dkim пише body hash did not verify, нещо е променило писмото по пътя, например бележка, добавена накрая от друг сървър. Ако редът за spf липсва, писмото изобщо не е минало проверка за SPF. Google има и инструмент, Admin Toolbox Messageheader, в който поставяте заглавията и той ги разчита вместо Вас.

Формите в WordPress и SMTP плъгинът

Когато формата на сайта прати писмо, WordPress го подава на функцията wp_mail(). Тя по подразбиране ползва PHP функцията mail(), така че писмото излиза от уеб сървъра, без да се влиза в пощенска кутия. Ако адресът на подателя не е зададен, WordPress слага wordpress@ и домейна на сайта. Документацията уточнява, че върнатото true не означава, че писмото е стигнало до получателя.

Две неща често пращат писмата от такава форма в спам. Първото е адресът в „От“. Някои форми слагат там адреса на посетителя, например име@gmail.com, а писмото всъщност се изпраща от Вашия сървър. Писмото твърди, че идва от Gmail, но Gmail не го е подписал. Google изрично пише, че подправянето на Gmail адрес в „От“ може да навреди на доставката. Правилно е в „От“ да има адрес от Вашия домейн, а адресът на посетителя да е в Reply-To, така отговорът пак стига до него.

Второто е пътят на самото писмо. SMTP плъгинът го променя. Той влиза в пощенска кутия на домейна с потребител и парола и праща през нейния сървър, както прави пощенската Ви програма. Така писмото излиза по същия път като обикновените Ви писма, SPF и DKIM важат за него, а когато нещо се обърка, SMTP сървърът връща грешка, която плъгинът може да покаже. Такива плъгини са WP Mail SMTP (мейлърът Other SMTP) и FluentSMTP (Any SMTP).

Попълнете в плъгина данните на пощенската кутия. Откъде да вземете точните стойности, е описано в ръководството за имейла на домейна в Outlook, Gmail и на телефона.

Текст
# Настройки на SMTP плъгина в WordPress
SMTP сървър:    mail.primer.bg
Порт:           465
Криптиране:     SSL/TLS
Удостоверяване: включено
Потребител:     info@primer.bg
Парола:         паролата на пощенската кутия
От (From):      info@primer.bg

Изпратете тестово писмо от плъгина и още едно от самата форма, после ги проверете със „Show original“, както по-горе.

Чеклист

  • Знам кои услуги пращат писма от моя домейн (пощенските кутии, формите на сайта, бюлетинът, фактурите).
  • В DNS има точно един запис, който започва с v=spf1.
  • Има DKIM запис за селектора, който cPanel показва, и dig го връща.
  • Има точно един запис на _dmarc и започва с p=none.
  • Отчетите на DMARC идват в отделна пощенска кутия.
  • Тестово писмо до Gmail показва spf=pass, dkim=pass и dmarc=pass.
  • Формите на сайта пращат през SMTP от адрес на моя домейн, а адресът на посетителя е в Reply-To.
  • Прегледах отчетите, преди да сменя на p=quarantine.

Ако не искате да се занимавате с това

За малък сайт с няколко пощенски кутии и една форма обикновено стигат стъпките по-горе. Ако пощата е на собствен сървър, при поддръжката на WordPress настройваме SPF, DKIM и DMARC, за да не попада пощата Ви в спам. Ако пращате през няколко услуги и не знаете откъде да започнете, опишете ги във формата за запитване.

Често задавани въпроси

Защо имейлите от моя домейн отиват в спам?

Най-често пощенският сървър на получателя не може да потвърди, че съобщението наистина идва от Вашия домейн, защото липсват записите SPF или DKIM. Друга честа причина е двоен запис, тъй като при SPF и DMARC два записа не се приемат, или услуга за бюлетини или фактури, която праща от Ваше име, но не е в записа SPF. Понякога WordPress праща от адрес като wordpress@primer.bg, за който няма пощенска кутия.

Какво изискват Gmail и Yahoo от подателите на имейли?

От всеки подател Google иска SPF или DKIM за домейна, валидни прав и обратен DNS запис (PTR) за сървъра, TLS връзка и по-малко от 0.3% съобщения, отбелязани като спам. Масовите податели, които пращат около 5000 съобщения на ден или повече до лични адреси в Gmail, трябва да имат и SPF, и DKIM, запис DMARC и отписване с едно щракване. Yahoo разделя изискванията си по същия начин.

Каква е разликата между SPF, DKIM и DMARC?

SPF е списък на сървърите, които могат да пращат поща от Вашия домейн. DKIM е цифров подпис, с който сървърът подписва всяко съобщение, а публичният ключ в DNS позволява на получателя да провери, че съобщението не е променено по пътя. DMARC казва на получателя какво да направи със съобщение, което не минава проверката, и къде да Ви праща отчети.

Може ли домейнът да има два записа SPF?

Не. Домейнът може да има само един запис SPF, а при два проверката завършва с грешка. Ако и друга услуга праща поща от Ваше име, добавете нейния include в същия запис, като спецификацията допуска най-много 10 DNS заявки, в които се броят include, a и mx. И при DMARC е позволен само един запис, защото според RFC 9989 при няколко получателят ги отхвърля всичките.

Къде в cPanel са записите SPF, DKIM и DMARC?

В cPanel отворете Email, после Email Deliverability, където таблицата показва състоянието на записите за всеки домейн. Бутонът Repair поправя невалидните записи, а Manage отваря отделни секции за DKIM, SPF, DMARC и PTR. Преди да потвърдите Repair, прегледайте предложения запис SPF, защото cPanel предлага запис за своя сървър и може да махне include на друга услуга, която ползвате.

С каква политика да започна DMARC?

Започнете с p=none, тоест само наблюдение, както препоръчва Google, и с адрес за отчетите в rua, най-добре отделна кутия като dmarc@primer.bg. Преди това SPF и DKIM трябва вече да работят, а Google съветва да се изчакат 48 часа след тях. Минете на p=quarantine едва когато отчетите покажат, че всичко, пратено от името на домейна, минава проверката.

Как да проверя дали имейлът минава SPF, DKIM и DMARC?

Пратете съобщение от кутия на домейна до личен адрес в Gmail, отворете го, натиснете трите точки до Reply и изберете Show original. В реда Authentication-Results търсите pass след spf, dkim и dmarc. Ако dkim показва body hash did not verify, нещо е променило съобщението по пътя, например бележка, добавена от друг сървър.

Защо имейлите от формите на WordPress отиват в спам?

По подразбиране WordPress праща през функцията mail() на PHP, без вход в пощенска кутия, а някои форми слагат адреса на посетителя, например в Gmail, в полето From. Тогава съобщението твърди, че идва от Gmail, но Gmail не го е подписал. Сложете адрес на собствения си домейн в From и адреса на посетителя в Reply-To, а пращайте през SMTP плъгин като WP Mail SMTP или FluentSMTP с кутия на домейна.

Източници

# ЕтикетиПощаДомейни
СподелетеFacebookXLinkedIn