Preskoči na sadržaj
Svilenković IT IT za male firme: domen, poslovni mejl, sigurnost

List 03 / 09

Provera DNS
Listovi

List 03 Pošta

SPF, DKIM i DMARC: zapisi koji dokazuju da mejl šaljete vi

SPF kaže koji serveri smeju da šalju poštu za vaš domen, DKIM potpisuje svaku poruku ključem čiji je javni deo u DNS-u, a DMARC kaže primaocu šta da radi sa porukom koja ne prođe proveru i gde da šalje izveštaje. Sva tri su TXT zapisi u DNS-u domena. Firma koja šalje ponude i račune mejlom treba da ima sva tri.

List
03 / 09
Naziv
SPF, DKIM i DMARC
Razmera
1:1
Revizija
Crtao
D. Svilenković
Na ovom listu

Kako rade zajedno

Kad poruka stigne, server primaoca radi dve provere i primenjuje jedno pravilo:

  1. SPF: da li je server koji je predao poruku na spisku domena iz adrese za povratne poruke (Return-Path). Kod obične pošte to je isti domen kao u adresi pošiljaoca.
  2. DKIM: da li potpis u zaglavlju poruke odgovara javnom ključu na domenu iz oznake d=.
  3. DMARC: da li je bar jedna od te dve provere prošla za domen koji se poklapa sa domenom iz polja From, onim koji primalac vidi. To poklapanje se zove poravnanje. Ako ne prođe nijedna, primalac primenjuje politiku iz DMARC zapisa.

Poravnanje je razlog zašto servis za bilten ili program za račune mora da bude podešen za vaš domen. Ako šalje sa svog domena u vaše ime, SPF i DKIM prolaze za njegov domen, a ne za vaš, i DMARC pada. Podrazumevano poravnanje je opušteno: poddomen, na primer bilten.vasafirma.rs, računa se kao isti domen. Strogo poravnanje traži potpuno isto ime.

Crtež 03/ADve provere i jedno pravilo

Poruka

From
ime@vasafirma.rs
Return-Path
ime@vasafirma.rs
DKIM-Signature
d=vasafirma.rs

SPF

Server koji je predao poruku je na spisku domena iz Return-Path.

DKIM

Potpis odgovara javnom ključu domena iz d=.

DMARC

Da li je bar jedna provera prošla za domen iz From?

  • Da: poruka prolazi.
  • Ne: primalac primenjuje politiku iz oznake p.
Kod obične pošte sva tri polja nose isti domen, pa je poravnanje u redu. Servis koji šalje sa svog domena prolazi SPF i DKIM za taj domen, a DMARC za vaš domen pada.

SPF

Jedan zapis po domenu

SPF je TXT zapis na samom domenu koji počinje sa v=spf1. Domen sme da ima samo jedan takav zapis; ako ih ima dva, primalac ne prihvata nijedan i rezultat je greška, koju RFC 7208 zove permerror. Kad uvodite nov servis za slanje, dopisujete ga u postojeći zapis.

Zapis stoji tačno na imenu iz adrese: za adrese @vasafirma.rs na imenu vasafirma.rs, u DNS panelima obično označenom sa @ ili praznim poljem za ime. Dugačak zapis DNS čuva u više nizova od najviše 255 znakova, a primalac ih spaja bez razmaka, pa razmak između delova mora da ostane unutar niza.

Granica od 10 DNS upita

Pri proveri primalac sme da uradi najviše 10 DNS upita. Upit troše include, a, mx, ptr, exists i redirect, a ne troše ip4, ip6 i all. Računaju se i upiti unutar uključenih zapisa, pa jedan include može da potroši više upita. Preko granice rezultat je greška (permerror), kao da SPF ne postoji.

Primer sa izmišljenim imenima:

Tablica 03.1SPF zapis
v=spf1 a mx include:_spf.hosting.example include:bilten.example ~all

Ovde a i mx troše po jedan upit, a svaki include jedan, plus onoliko koliko troši zapis na koji vodi. Ako _spf.hosting.example u sebi ima još dva include, a bilten.example jedan, ukupno je 2 + (1 + 2) + (1 + 1) = 7 upita.

Uz to, najviše dva upita smeju da vrate prazan odgovor ili ime koje ne postoji; treći je greška. Zato include servisa koji više ne koristite nije bezopasan ostatak.

Upite štedite tako što izbacite servise koje ne koristite, a umesto a i mx upišete ip4 i ip6 adrese svojih servera, koje ne troše upite. Tada ih menjate sami kad se adresa servera promeni. Provera DNS zapisa broji upite i pokazuje koji deo zapisa koliko troši.

Crtež 03/BBrojanje DNS upita za primer iznad
  • vasafirma.rs7 upita
    • a1
    • mx1
    • include:_spf.hosting.example1 + 2
      • include1
      • include1
    • include:bilten.example1 + 1
      • include1
    • ~all0

Granica: 10 upita

Svaki include troši jedan upit i još onoliko koliko troši zapis na koji vodi; ip4, ip6 i all ne troše upite.

Kraj zapisa: -all, ~all, ?all, +all

Kraj Šta kaže primaocu
-all poruke sa servera koji nisu na spisku ne prolaze (fail)
~all takve poruke su sumnjive (softfail); šta se sa njima dešava odlučuje DMARC politika
?all ni da ni ne (neutral); zapis tada skoro ništa ne kaže
+all svako na internetu sme da šalje u vaše ime; ovo nikad ne upisujte

Ako zapis nema ni all ni redirect, važi isto što i ?all. Sve što stoji posle all primalac ne čita. Microsoft za domene u Microsoft 365 preporučuje -all, jer uz njega preporučuje i DKIM i DMARC, a Google u pomoći za Workspace daje primer sa ~all. Uz ispravan DMARC oba završetka rade posao.

Primeri

Samo hosting, sajt i pošta kod iste firme. Tačan zapis daje hosting; ovaj dozvoljava server sajta (a), servere pošte (mx) i još jednu adresu i troši dva upita:

Tablica 03.2SPF zapis
v=spf1 a mx ip4:192.0.2.10 -all

Google Workspace, primer iz Google-ove pomoći:

Tablica 03.3SPF zapis
v=spf1 include:_spf.google.com ~all

Microsoft 365, oblik koji daje Microsoft, uz savet da TTL SPF zapisa bude najmanje 3.600 sekundi:

Tablica 03.4SPF zapis
v=spf1 include:spf.protection.outlook.com -all

Hosting i servis za bilten. Vrednost za include daje servis u svom uputstvu, a ovde je izmišljena. Novi servis se dopisuje u isti zapis, ispred all:

Tablica 03.5SPF zapis
v=spf1 a mx include:spf.primer-bilten.example ~all

Kad je sve na mestu, pošta izgleda kao kod orkestra Trubači Stars: potpisane poruke, SPF i DMARC.

DKIM

Selektor i gde stoji ključ

Server koji šalje potpisuje svaku poruku privatnim ključem, a javni ključ objavljuje u DNS-u. Ključ stoji na imenu selektor._domainkey.vasafirma.rs. Selektor je ime koje bira servis; u potpisu poruke piše kao s=, a domen kao d=. Jedan domen može da ima više ključeva pod različitim selektorima, na primer jedan za poštu i drugi za bilten.

Tablica 03.6DNS zapis
ImeTipVrednost
default._domainkey.vasafirma.rsTXT"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."

p= je javni ključ, ovde skraćen. Ako je p= prazno, ključ je opozvan. Oznaka t=y znači probni režim: primalac tada poruke tretira kao nepotpisane.

Dužina ključa

RFC 8301 traži RSA ključ od najmanje 1024 bita, a preporučuje 2048; potpis ključem kraćim od 1024 bita primalac ne sme da prizna. Potpis rsa-sha1 se više ne sme koristiti. Google Workspace preporučuje ključ od 2048 bita ako ga vaš DNS provajder podržava. Takav ključ je duži od 255 znakova, pa ga DNS čuva u više nizova.

Microsoft 365: dva CNAME zapisa

Microsoft 365 za DKIM ne traži TXT, nego dva CNAME zapisa, selector1._domainkey i selector2._domainkey, koji vode na ključeve kod Microsoft-a. Za domene dodate od maja 2025. cilj ima nov oblik, koji se završava na dkim.mail.microsoft, a stariji domeni zadržavaju oblik koji se završava na onmicrosoft.com. Vrednosti prepišite iz Microsoft-ovog portala za svoj domen, ne iz primera. Kad CNAME postoji, a cilj ne postoji, ključa nema i potpis ne prolazi.

Kako da nađete selektor

Selektor ne može da se pogodi iz DNS-a. Google za domene van Workspace-a savetuje da pošaljete probnu poruku i u njenom izvornom tekstu pročitate s= iz zaglavlja DKIM-Signature. U Gmail-u izvorni tekst otvarate preko tri tačke pored dugmeta za odgovor, stavkom za prikaz originala (u engleskom interfejsu: Show original). Provera DNS zapisa proverava uobičajene selektore, a tačan možete da upišete sami.

DMARC

DMARC je TXT zapis na imenu _dmarc.vasafirma.rs. Od maja 2026. važi nova specifikacija, RFC 9989, koja je zamenila RFC 7489. Zbirne izveštaje opisuje RFC 9990, a izveštaje o greškama RFC 9991.

Tablica 03.7DNS zapis
ImeTipVrednost
_dmarc.vasafirma.rsTXT"v=DMARC1; p=none; rua=mailto:dmarc@vasafirma.rs"

Ako se za isto ime vrate dva DMARC zapisa, primalac odbacuje oba. Ako poddomen nema svoj zapis, primalac traži zapis naviše po imenu, najviše osam nivoa, pa za bilten.vasafirma.rs važi zapis domena vasafirma.rs.

Oznake koje vredi znati

Oznaka Značenje
v=DMARC1 mora da bude prva, inače primalac zanemaruje ceo zapis
p politika: none (samo izveštaji), quarantine (neželjena pošta) ili reject (odbijanje); bez p važi none
sp politika za postojeće poddomene
np politika za poddomene koji ne postoje; novo u RFC 9989
t t=y je probni režim: politika se primenjuje stepen blaže, quarantine kao none, a reject kao quarantine; novo u RFC 9989
rua adresa za zbirne izveštaje; bez nje izveštaji ne stižu
ruf adresa za izveštaje o pojedinačnim greškama; oznaka fo bez nje nema efekta
adkim, aspf poravnanje za DKIM i SPF: r (opušteno, podrazumevano) ili s (strogo)
psd označava javni sufiks, ime ispod koga drugi registruju domene, kao što je .rs; domen firme je ne koristi; novo u RFC 9989

Oznaka pct više ne postoji. Vrednosti između 0 i 100 nisu se pouzdano primenjivale, a ulogu pct=0 preuzela je oznaka t=y. Ako je vaš zapis ima, uklonite je pri sledećoj izmeni. Nepoznate oznake primalac preskače.

Postepeno: od p=none do p=reject

  1. Posmatranje, p=none sa rua. Nekoliko nedelja čitate izveštaje i tražite servise koji šalju u vaše ime, a nisu u SPF-u ili nemaju DKIM.
  2. Karantin, p=quarantine. Kad sva vaša pošta prolazi, poruke koje ne prođu idu u neželjenu poštu. Za prelazni period možete da dodate t=y.
  3. Odbijanje, p=reject. Lažne poruke u ime domena primaoci odbijaju na ulazu.
Tablica 03.8DMARC zapisi
v=DMARC1; p=none; rua=mailto:dmarc@vasafirma.rs
v=DMARC1; p=quarantine; rua=mailto:dmarc@vasafirma.rs
v=DMARC1; p=reject; rua=mailto:dmarc@vasafirma.rs

Na sajtu vodoinstalatera Zlaja 2015 DMARC je podignut sa posmatranja na karantin, a uz to su dodati CAA zapis i security.txt. Kod firme AutoSet Niš politika je pomerena sa karantina na odbijanje, pa se poruka koja se lažno predstavlja kao AutoSet odbija na ulazu, umesto da završi u neželjenoj pošti.

Izveštaji na drugu adresu

Ako rua vodi na adresu na drugom domenu, na primer kod firme koja vam održava poštu, taj domen mora da potvrdi da prima izveštaje za vaš domen. Potvrda je TXT zapis v=DMARC1 na posebnom imenu kod primaoca izveštaja:

Tablica 03.9DNS zapis
ImeTipVrednost
vasafirma.rs._report._dmarc.izvestaji.exampleTXT"v=DMARC1"

Bez tog zapisa primaoci tu adresu preskaču (RFC 9990) i izveštaji ne stižu, iako je sve ostalo ispravno.

Domen koji ne šalje poštu

Domen koji ne koristite za poštu, na primer vasafirma.com uz glavni vasafirma.rs ili stari domen posle selidbe, i dalje može da se zloupotrebi za lažne poruke. Zatvorite ga sa tri zapisa:

Tablica 03.10DNS zapisi
ImeTipVrednost
vasafirma.com.MX0 .
vasafirma.com.TXT"v=spf1 -all"
_dmarc.vasafirma.com.TXT"v=DMARC1; p=reject"

Null MX (0 .) po RFC 7505 kaže da domen ne prima poštu, i uz njega ne sme biti drugih MX zapisa. SPF -all kaže da niko ne šalje u ime domena, a DMARC p=reject traži da se takve poruke odbiju. Tako je zatvoren domen sa kog se ne šalje pošta kod firme Jupiter Planet: SPF koji odbija sve, DMARC na odbijanje i prazan MX. Provera DNS zapisa takav domen prikazuje kao zatvoren za tuđu upotrebu.

Česte greške

  • Dva SPF zapisa. Nastaju kad se za nov servis napravi nov zapis umesto da se dopuni postojeći. Primalac tada ne prihvata nijedan.
  • include ka domenu bez SPF-a. Pogrešno prepisano ime ili ugašen servis obara ceo SPF (permerror).
  • DMARC na pogrešnom imenu. Zapis stoji na samom domenu umesto na _dmarc, pa ga primaoci ne nalaze.
  • Ime domena upisano dvaput. Mnogi DNS paneli sami dodaju ime domena na kraj imena zapisa. Ako u polje upišete _dmarc.vasafirma.rs, zapis završi na _dmarc.vasafirma.rs.vasafirma.rs. Ista zamka postoji i za DKIM, a opisuje je i Mailchimp u uputstvu za potvrdu domena.
  • ptr u SPF-u. RFC 7208 kaže da se ptr ne objavljuje; zamenite ga adresama servera.
  • +all ili kraj bez all. Prvi dozvoljava svima da šalju u vaše ime, a drugi ne kaže ništa.
  • p=none zauvek. Politika posmatranja bez čitanja izveštaja ne štiti ni od čega.

Sve ove greške provera DNS zapisa prepoznaje i objašnjava. Ako poruke i posle ispravki završavaju u spamu, ostali razlozi su na strani Zašto mejlovi idu u spam, a kako se pošta na domenu otvara i podešava na strani Poslovni mejl na domenu firme.

Ako želite da zapise za vaš domen podesim ja, pošaljite upit.

Proverite svoj domen

Alat čita MX, SPF, DKIM, DMARC, CAA i NS zapise vašeg domena i uz svaki nalaz kaže šta znači i šta da popravite.

Može i adresa sajta ili mejl adresa; alat uzima samo domen.

Česta pitanja

Mogu li da imam dva SPF ili dva DMARC zapisa?

Ne. Ako domen ima dva zapisa koji počinju sa v=spf1, primalac ne prihvata nijedan; RFC 7208 to zove permerror. Ako se za _dmarc vrate dva DMARC zapisa, primalac odbacuje oba (RFC 9989). Kad dodajete nov servis, dopišite ga u postojeći zapis.

Da li je važno ime SPF TXT zapisa?

Jeste. Primalac SPF traži na domenu iz adrese za povratne poruke (Return-Path), koja je kod obične pošte ista kao adresa pošiljaoca. Za adrese @vasafirma.rs zapis mora da stoji na imenu vasafirma.rs, u DNS panelima obično označenom sa @ ili praznim poljem za ime. Zapis na www ili na drugom imenu primalac ne vidi.

Šta znači DMARC p=none?

p=none je politika posmatranja: primaoci ne odbijaju i ne sklanjaju poruke koje ne prođu proveru, ali šalju izveštaje na adresu iz rua. Služi da vidite ko sve šalje u ime domena pre nego što politiku pooštrite na p=quarantine, pa na p=reject. Sama po sebi ne štiti od lažnih poruka u vaše ime.

Kako da proverim DKIM?

Upišite domen u proveru DNS zapisa na ovom sajtu: alat traži ključ pod uobičajenim selektorima i pod selektorom koji upišete. Tačan selektor piše u zaglavlju poruke, u oznaci s= reda DKIM-Signature. Da li je potpis na primljenoj poruci prošao, vidi se u Gmail-u u prikazu originala poruke.

Kako se podešava DMARC za Microsoft 365?

DMARC je TXT zapis u DNS-u vašeg domena, na imenu _dmarc, isti bez obzira na to ko vam drži poštu. Pre nego što pooštrite politiku, proverite da SPF sadrži include:spf.protection.outlook.com i da rade oba DKIM zapisa koje daje Microsoft, selector1 i selector2.

Izvori

Specifikacije i dokumentacija, provereno 28. 9. 2026. Strane su na engleskom.