SPF, DKIM en DMARC worden vaak in één adem genoemd, maar ze doen drie verschillende dingen. SPF en DKIM beantwoorden elk een technische vraag. DMARC vraagt daarna: hoort het antwoord bij het domein dat de ontvanger ziet? En: wat moet er gebeuren als dat niet zo is?
Drie lagen
SPF
Controleert het verzendende IP tegen een lijst in DNS. Kijkt naar MAIL FROM, niet naar From.
DKIM
Controleert of het bericht ondertekend is met een sleutel van een domein, en of het onderweg intact bleef.
DMARC
Eist dat SPF en/of DKIM aligned zijn met From, past jullie beleid toe, en vraagt ontvangers om rapporten.
Alignment, niet alleen “pass”
Een bericht kan SPF of DKIM passen en toch voor DMARC falen. Klassiek voorbeeld: een leverancier verstuurt mail met From info@julliedomein.nl (header_from), maar:
- MAIL FROM (
envelope_from) isbounces@leverancier.com→ SPF slaagt voorleverancier.com, niet voor jullie domein. - DKIM tekent met
d=leverancier.com→ handtekening geldig, niet aligned.
DMARC faalt dan, hoe “groen” SPF en DKIM bij de leverancier ook zijn. De fix is custom sending: SPF include (of IP) van die dienst op jullie domein, en DKIM-signing met d=julliedomein.nl. Per dienst (Mailchimp, SendGrid, SES, …): Andere verzenders. Wat envelope-from en header-from precies zijn: envelope_from en header_from.
Eén van de twee is genoeg
DMARC slaagt als SPF aligned pass of DKIM aligned pass (of beide). Dat is bewust:
- Doorgestuurde mail laat SPF bijna altijd falen. Als DKIM aligned blijft, slaagt DMARC alsnog.
- Sommige systemen kunnen niet DKIM’en op jullie domein, maar wel vanaf een vast IP dat in SPF staat.
In de praktijk wil je beide op de hoofdverzenders. Dan overleef je forwarding én een tijdelijke DKIM-fout.
Een concreet pad
- Zet DMARC op
p=nonemet een rapportadres, zodat je ziet wie er mailt. - Zet SPF op orde: alle echte verzenders in het record, eindigend op
-all, binnen de tien lookups. - Zet DKIM aan bij elke verzender, met jullie eigen domein als
d=. - Wacht tot de rapporten laten zien dat legitieme mail aligned is.
- Scherp aan naar quarantaine, daarna reject.
dmarcs volgt dat pad in de advisor, op basis van jullie aggregaatrapporten — niet volgens een generieke checklist. De DNS zelf kun je met de hand bijhouden of via de beheerde functies laten publiceren.