Trei acronime care decid dacă email-ul firmei tale ajunge în inbox sau direct la spam: SPF, DKIM, DMARC. Din februarie 2024, Gmail și Yahoo au făcut aceste protocoale obligatorii pentru orice expeditor cu peste 5.000 de mesaje pe zi. În practică, regula s-a extins informal la toți expeditorii - dacă trimiți email-uri tranzacționale sau newsletter fără autentificare corectă, deliverability-ul tău e mort.
În termeni simpli: cele 3 protocoale îi spun Gmail-ului „da, acest mesaj chiar vine de la firma.ro, nu de la un atacator care încearcă phishing". Fără ele, filtrele anti-spam tratează email-ul tău ca pe orice mesaj suspect. Am configurat setup-ul pentru zeci de IMM-uri și pattern-ul e mereu același: cineva schimbă providerul de email, uită să actualizeze DNS, iar săptămâna următoare clienții se plâng că nu primesc oferte.
Dacă încă nu ai decis cu ce provider de email să mergi, citește mai întâi cum configurezi email-ul cu domeniul firmei tale și diferența dintre email business pe hosting și provider dedicat. Pentru noțiuni de bază DNS, vezi tipurile de DNS record pentru începători.
De ce contează acum - regulile Gmail și Yahoo
În octombrie 2023, Google și Yahoo au anunțat simultan noile reguli pentru bulk senders, intrate în vigoare în februarie 2024. Threshold-ul oficial: 5.000 mesaje pe zi către conturi Gmail sau Yahoo declanșează cerințe stricte. Aici este partea importantă: filtrele aplică regulile similar și expeditorilor mici - dacă SPF lipsește sau DMARC eșuează, mesajul tău pleacă la spam chiar dacă trimiți 50 de email-uri pe lună.
Cerințele oficiale Gmail/Yahoo: SPF și DKIM configurate pe domeniul From:, DMARC publicat (minim p=none), aliniere între domeniul From: și domeniile SPF/DKIM, one-click unsubscribe pentru bulk, spam rate sub 0,3% în Google Postmaster Tools.
Battle-tested: dacă lansezi o campanie de email marketing fără aceste trei protocoale aliniate, open rate-ul scade cu 40-70% peste noapte.
Cele 3 protocoale - rolul fiecăruia
| Protocol | Ce face | Tip DNS record | Locația | Comandă verificare |
|---|---|---|---|---|
| SPF | Listă de servere autorizate să trimită pentru domeniu | TXT | rădăcina domeniului (firma.ro) |
dig +short TXT firma.ro |
| DKIM | Semnătură criptografică în header, public key în DNS | TXT | selector._domainkey.firma.ro |
dig +short TXT google._domainkey.firma.ro |
| DMARC | Policy ce să facă destinatarul când SPF/DKIM eșuează + raportare | TXT | _dmarc.firma.ro |
dig +short TXT _dmarc.firma.ro |
În termeni simpli: SPF e lista invitaților la petrecere, DKIM e ștampila oficială pe invitație, iar DMARC e bodyguard-ul de la ușă care decide ce face când cineva ajunge fără invitație sau cu ștampila falsă.
1. SPF (Sender Policy Framework)
SPF este un simplu record TXT în zona DNS a domeniului tău care listează ce servere (IP-uri sau hostname-uri) au voie să trimită email cu adresa @firma.ro. Când Gmail primește un email care pretinde că vine de la contact@firma.ro, verifică record-ul SPF al firma.ro și compară cu IP-ul real al serverului expeditor.
Setup minim pentru Google Workspace:
firma.ro. TXT "v=spf1 include:_spf.google.com ~all"
Setup pentru Microsoft 365:
firma.ro. TXT "v=spf1 include:spf.protection.outlook.com -all"
Setup pentru Zoho Mail: v=spf1 include:zoho.com ~all. Pentru cPanel cu propriul mail server: v=spf1 a mx include:_spf.hosting-provider.ro ~all.
Mecanisme SPF: v=spf1 (versiune), include:domeniu.tld (include altul), a (autorizează A record), mx (autorizează MX servers), ip4:1.2.3.4 (IP specific), ~all (softfail), -all (hardfail).
Trade-off: ~all vs -all. Începe cu ~all în primele 2 săptămâni să nu blochezi mail legitim. După ce confirmi că toți expeditorii sunt incluși, treci la -all.
Warning
Multiple SPF records = email mort. O zonă DNS poate avea un singur record TXT SPF per domeniu - asta e regulă RFC, nu sugestie. Dacă adaugi un al doilea record pentru Google Workspace fără să-l ștergi pe cel vechi de la cPanel, ambele devin invalide și toate mesajele tale ajung la spam. Verifică înainte să adaugi cu dig +short TXT firma.ro | grep spf1 - dacă vezi două linii, fă merge într-una singură cu mai multe include:.
2. DKIM (DomainKeys Identified Mail)
DKIM funcționează diferit - nu listează servere, ci adaugă o semnătură criptografică în header-ul fiecărui mesaj trimis. Provider-ul tău de email (Google, Microsoft, etc.) semnează cu o cheie privată, iar tu publici cheia publică în DNS. Destinatarul citește header-ul, găsește locația cheii publice (selector._domainkey.firma.ro), verifică semnătura.
Setup pas cu pas pentru Google Workspace:
- Login
admin.google.com→ Apps → Google Workspace → Gmail → Authenticate email - Click
Generate new record→ alege key size 2048-bit (NICIODATĂ 1024) - Copiază valoarea TXT generată (începe cu
v=DKIM1; k=rsa; p=...) - În zona DNS, adaugă record TXT cu Host
google._domainkey, Value copiat, TTL 3600 - Așteaptă 24-48h propagare DNS, apoi întoarce-te în admin → click
Start authentication
Exemplu DKIM record real: google._domainkey.firma.ro. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG...".
Pentru Microsoft 365, selectorii sunt selector1 și selector2 (rotație automată):
selector1._domainkey.firma.ro. CNAME selector1-firma-ro._domainkey.firma.onmicrosoft.com.
selector2._domainkey.firma.ro. CNAME selector2-firma-ro._domainkey.firma.onmicrosoft.com.
Aici este partea importantă: Microsoft folosește CNAME, nu TXT. Asta îi permite să roteze cheile fără să updatezi DNS - convenient, dar serverul providerului devine source of truth.
Pro tip dev: rotește DKIM keys anual. Cheia publică din DNS rămâne disponibilă atacatorilor care au scrape-uit-o. Rotație anuală = limitezi fereastra de atac chiar dacă cheia privată leak-uiește. RTFM (citește docs oficiale): support.google.com/a/answer/174124 pentru Google și learn.microsoft.com pentru Microsoft 365.
3. DMARC (Domain-based Message Authentication, Reporting & Conformance)
DMARC este nivelul trei: spune destinatarului ce să facă atunci când un mesaj eșuează verificarea SPF sau DKIM. Plus - asta e magia - generează rapoarte care îți arată cine trimite email în numele domeniului tău (legitim sau abuziv).
Setup minim - faza monitoring:
_dmarc.firma.ro. TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@firma.ro; ruf=mailto:dmarc-forensic@firma.ro; fo=1; adkim=r; aspf=r; pct=100"
Tag-uri DMARC: v=DMARC1 (versiune), p=none/quarantine/reject (policy), rua=mailto: (rapoarte agregate), ruf=mailto: (forensic per-message), fo=1 (forensic la orice fail), adkim=r/s și aspf=r/s (alignment relaxat sau strict), pct=100 (procent aplicat), sp=reject (policy subdomenii).
Tip
Începe mereu cu p=none, niciodată direct p=reject. Setarea inițială p=none nu blochează nimic - doar îți trimite rapoarte despre cine trimite email cu domeniul tău. Vei descoperi expeditori legitimi pe care i-ai uitat (CRM, ERP, formular contact, billing system, plugin WordPress newsletter). Dacă sari direct la p=reject, blochezi accidental traffic legitim și pierzi clienți. Journey-ul minim sănătos: 2-4 săptămâni p=none → analiză rapoarte → fix expeditori legitimi → p=quarantine pct=25 → p=quarantine pct=100 → p=reject.
DMARC enforcement journey - cum treci de la p=none la p=reject
Asta e partea pe care 90% din ghiduri o sar peste. Setup-ul nu se termină cu publicarea record-ului - începe acolo. Timeline realist pentru un domeniu IMM tipic:
Săptămânile 1-2: p=none (monitoring pasiv)
_dmarc.firma.ro. TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@firma.ro"
Primești zilnic XML reports de la fiecare provider major. Setup minim pentru analiză: înregistrează-te la un serviciu freemium (dmarcian, DMARC Analyzer, Postmark DMARC monitor). Tier gratuit acoperă majoritatea IMM-urilor.
Ce cauți în rapoarte: expeditori cu SPF/DKIM PASS aliniați (OK), expeditori cu PASS DKIM dar FAIL SPF (legitim, adaugă în SPF), expeditori cu FAIL ambele (phishing sau servicii uitate: Mailchimp, Sendgrid, Calendly, plugin WordPress), volume mari de la IP-uri necunoscute (red flag).
Săptămânile 3-4: fix gaps
Pentru fiecare expeditor legitim identificat: Mailchimp publică CNAME pentru k1._domainkey + adaugă include:servers.mcsv.net în SPF; Sendgrid similar cu s1._domainkey/s2._domainkey + include:sendgrid.net; WordPress cu form contact via PHP mail() se înlocuiește cu plugin SMTP (WP Mail SMTP + Google Workspace relay); CRM/Helpdesk configurează DKIM signing prin platformă.
Battle-tested: cel mai frecvent expeditor uitat e plugin-ul WordPress care trimite via PHP mail(). Sub p=reject, toate aceste email-uri devin spam. Soluția: SMTP relay prin Google Workspace sau Sendgrid.
Săptămânile 5-6: p=quarantine cu pct gradual
_dmarc.firma.ro. TXT "v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc-reports@firma.ro"
pct=25 aplică policy doar la 25% din mesajele care eșuează - restul rămân tratate ca p=none. Aici descoperi expeditorii pe care i-ai mai ratat. După 1 săptămână fără surprize în rapoarte, crește la pct=50, apoi pct=100.
Săptămânile 7-8: p=reject (target state)
_dmarc.firma.ro. TXT "v=DMARC1; p=reject; rua=mailto:dmarc-reports@firma.ro; sp=reject; adkim=s; aspf=s"
Aici ești în target state. Plus alignment strict (adkim=s, aspf=s) pentru protecție maximă, plus policy pentru subdomenii (sp=reject).
Trade-off: p=reject cu alignment strict îți oferă protecție maximă contra spoofing, dar dacă mai apare un expeditor legitim neconfigurat, mesajele lui sunt definitiv blocate. Mai sigur (pentru anumite scenarii enterprise) e să rămâi pe p=quarantine permanent - mesajele suspecte ajung în spam, nu rejected outright.
Tools pentru verificare
Linie de comandă (dig/nslookup)
Verifică SPF:
dig +short TXT firma.ro | grep spf1
Verifică DKIM (Google Workspace selector):
dig +short TXT google._domainkey.firma.ro
Verifică DMARC:
dig +short TXT _dmarc.firma.ro
Pe Windows fără WSL:
nslookup -type=TXT firma.ro
nslookup -type=TXT _dmarc.firma.ro
nslookup -type=TXT google._domainkey.firma.ro
Tools online
- mail-tester.com - trimiți un mesaj, primești scor 1-10 cu detalii SPF/DKIM/DMARC, content score, headers analysis. Gratuit.
- mxtoolbox.com - validator SPF/DKIM/DMARC plus blacklists, supertool într-o pagină.
- dmarcian.com - validator DMARC plus parser pentru rapoarte agregate.
- Google Postmaster Tools (
postmaster.google.com) - dashboard oficial cu spam rate, IP reputation, domain reputation. Necesită verificare proprietate domeniu.
Pro tip dev: configurează un Postmaster Tools account chiar și pentru un IMM mic. Vezi în timp real degradare deliverability și reacționezi înainte ca clienții să-ți spună „nu mai primesc emailuri de la voi".
BIMI - logo verificat în Gmail
BIMI (Brand Indicators for Message Identification) e nivelul 4, opțional. Afișează logo-ul firmei lângă subject line în Gmail, Yahoo, Apple Mail - trust visual contra phishing.
Cerințe: DMARC minim p=quarantine cu pct=100, logo SVG Tiny PS 1.2, VMC (Verified Mark Certificate) de la DigiCert sau Entrust (180-1.500 EUR/an), plus record TXT default._bimi.firma.ro.
Trade-off: BIMI e investiție serioasă cu return marginal pentru IMM. Are sens doar dacă ai trafic mare în Gmail (peste 100.000 mesaje/lună) și brand recognition construit. Pentru un IMM cu 5.000 mesaje/lună - skip, focus pe SPF/DKIM/DMARC bine făcute.
Provideri email - default DKIM
Tabel cu what's automated vs manual:
| Provider | SPF | DKIM generare | DKIM publish DNS | DMARC | Cost minim/lună |
|---|---|---|---|---|---|
| Google Workspace | manual TXT | auto în admin | manual TXT | manual TXT | 5 EUR/user /go/google-workspace |
| Microsoft 365 | manual TXT | auto în admin | CNAME (mai simplu) | manual TXT | 4,2 EUR/user /go/microsoft-365 |
| Zoho Mail | manual TXT | auto în admin | manual TXT | manual TXT | 1 EUR/user /go/zoho |
| cPanel + Exim | manual TXT | manual (WHM/cPanel) | manual TXT | manual TXT | inclus în hosting |
| ProtonMail Business | manual TXT | auto | manual TXT | manual TXT | 6,99 EUR/user |
| Fastmail | manual TXT | auto | manual TXT | manual TXT | 5 USD/user |
Aici este partea importantă: indiferent de provider, publicarea record-urilor în DNS rămâne responsabilitatea ta. Nimeni nu o face automat (cu excepția cazului în care domeniul e înregistrat la același provider - dar nu e recomandat să combini registrar cu mail provider).
Greșeli frecvente
- Multiple SPF records - cauza cea mai comună de email broken. Verifică cu
dig +short TXT firma.ro | grep -c spf1- rezultatul trebuie să fie1. - SPF peste 10 DNS lookups - fiecare
include:declanșează un lookup, unele au includes recursive. Limita RFC este 10. Soluții: SPF flattening sau servicii managed. - DKIM 1024-bit - obsolete. Regenerează ca 2048-bit la următorul provider switch.
- DMARC fără rua - publici DMARC fără endpoint = ești orb. Pune mereu
rua=mailto:dmarc@firma.ro. - p=reject prea devreme - cea mai costisitoare greșeală. Journey gradual cu
pcte singura cale safe. - DKIM publicat pentru un singur selector - Microsoft 365 rotează între
selector1șiselector2, trebuie ambele records. - Alignment ignorat - dacă trimiți cu
From: contact@firma.rodar SPF e configurat pentrumail.firma.ro, alignment fail. DMARC nu trece chiar dacă SPF zice PASS. - CNAME în loc de TXT - Microsoft 365 cere CNAME, Google cere TXT. Confuzia produce DKIM broken. RTFM docs providerului.
Acid test pre-launch campanie email
Înainte să lansezi orice campanie de email marketing sau să comuți providerul de email, treci prin lista asta:
-
dig +short TXT firma.ro | grep -c spf1returnează1(un singur record SPF) - SPF include toți expeditorii (Google/Microsoft/Mailchimp/Sendgrid/whatever)
- SPF total lookups sub 10 (verifică cu mxtoolbox SPF flattener)
- SPF terminat cu
~allsau-all, niciodată?all - DKIM 2048-bit configurat pentru fiecare expeditor (provider principal + ESP)
-
dig +short TXT google._domainkey.firma.roreturnează cheia publică completă - DMARC publicat cu
rua=mailto:dmarc@firma.ro - Plan DMARC enforcement journey pe 6-8 săptămâni documentat
- Mail-test cu mail-tester.com returnează scor 10/10
- Google Postmaster Tools configurat pentru domeniu
Întrebări frecvente
Pot avea două SPF records dacă folosesc două servicii diferite?
Nu, niciodată. Soluția corectă este să le combini într-un singur record cu multiple include:. Exemplu pentru Google Workspace + Mailchimp: v=spf1 include:_spf.google.com include:servers.mcsv.net ~all. Două records separate înseamnă SPF invalid și mesaje la spam.
Câte DNS lookups are voie SPF maxim?
Maxim 10 lookups, inclusiv cele recursive din include:. Fiecare include:, a, mx, ptr, exists și redirect consumă un lookup. Peste 10 = permerror și SPF invalidate complet. Pentru a fi safe, rămâi sub 8. Dacă ai mai mult, folosește SPF flattening (înlocuiește includes cu IP-uri brute) sau un serviciu managed care merge multiple SPF într-un singur include.
Când e safe să trec DMARC la p=reject?
Minim 6-8 săptămâni după setup, doar după ce rapoartele RUA arată zero expeditori legitimi care eșuează timp de minim 2 săptămâni consecutive. Strict procedural: p=none 2-4 săptămâni → p=quarantine pct=25 1 săptămână → pct=50 1 săptămână → pct=100 1 săptămână → p=reject pct=100. Sări peste pași doar dacă ești sigur că nu trimite nimic legitim din afara setup-ului declarat.
BIMI merită investiția pentru un IMM?
Pentru sub 50.000 mesaje/lună - nu. Costul VMC cert (180-1.500 EUR/an) plus timpul de pregătire logo SVG Tiny PS plus risk de revocare la rotație DMARC nu justifică return-ul. Pentru retail/e-commerce cu trafic mare în Gmail (peste 200.000 mesaje/lună) și competitori care folosesc deja BIMI - da, devine differentiator vizual important.
Cum analizez rapoartele DMARC fără să mor citind XML?
Folosește un serviciu freemium gen dmarcian, DMARC Analyzer sau Postmark DMARC monitor. Configurezi rua să trimită la adresa lor, ei parse-uiesc XML-urile și îți dau dashboard human-readable. Tier gratuit acoperă majoritatea IMM-urilor.
Am Google Workspace, e suficient să activez DKIM din admin?
Nu. Activarea în admin generează cheia, dar trebuie să publici manual record-ul TXT în zona DNS. Fără publicare DNS = DKIM eșuează la fiecare verificare. După publicare și 24-48h propagare, întoarce-te în admin → click Start Authentication.
Cum testez DMARC fără să afectez producția?
Folosește pct=0 în etapa inițială: v=DMARC1; p=reject; pct=0; rua=.... Asta nu aplică policy la niciun mesaj, dar generează rapoarte agregate. Ești în logging mode. După 2 săptămâni, crește la pct=25.
Concluzie
SPF, DKIM și DMARC sunt baseline obligatoriu, nu „nice to have". Setup-ul corect durează 4-8 ore distribuite pe 6-8 săptămâni (cu DMARC enforcement journey), costul e zero dacă rămâi pe DKIM auto-generat, iar return-ul în deliverability e instant vizibil.
Pe scurt: SPF = listă servere autorizate, un singur record, max 10 lookups, terminat -all final. DKIM = 2048-bit minim, rotație anuală. DMARC = obligatoriu cu rua=, journey gradual p=none → p=reject în 6-8 săptămâni. BIMI = opțional, doar pentru branduri cu trafic mare în Gmail.
Trade-off final: DIY (4-8 ore + curbă învățare) vs agenție specializată (100-300 EUR). Pentru IMM sub 20.000 mesaje/lună, DIY merită. Verifică acum cu dig +short TXT _dmarc.firma.ro - dacă nu primești rezultat, ai homework pentru weekend.
Surse
- Gmail bulk sender guidelines - support.google.com/mail/answer/81126
- Yahoo Sender Requirements - senders.yahooinc.com/best-practices
- RFC 7208 (SPF) - datatracker.ietf.org/doc/html/rfc7208
- RFC 6376 (DKIM) - datatracker.ietf.org/doc/html/rfc6376
- RFC 7489 (DMARC) - datatracker.ietf.org/doc/html/rfc7489
- BIMI Group official - bimigroup.org
- Google Postmaster Tools - postmaster.google.com
- Microsoft 365 DKIM docs - learn.microsoft.com/en-us/defender-office-365/email-authentication-dkim-configure