← Blog

Email automation

DMARC, SPF en BIMI: valkuilen voor Nederlandse e-mail

Je herinneringsmail belandt in de KPN-spammap. SPF zegt pass. DMARC zegt fail. Hier staat het spiekbriefje met drie valkuilen en wat je er aan kunt doen.

Jacob Molkenboer· Oprichter · A Brand New Company· 5 jun 2026· 7 min
Crème envelop met groen lakzegel en lint op linnen, messing label, datumstempel, rode inktvlek, zijlicht.

Het is dinsdag 23:00 uur. De financieel verantwoordelijke van een Utrechtse studio vuurt de wekelijkse batch met factuurherinneringen af via de outbound agent. SendGrid logt alle 312 berichten als afgeleverd. Twee dagen later heeft de helft van de @kpnmail.nl en @ziggo.nl klanten nog steeds niet betaald. Hun herinneringen stonden in de spam. De agent ging niet stuk. De DNS wel.

Dit patroon zien we vaak genoeg om het op te schrijven. Nederlandse uitgaande mail leeft in een specifieke hoek van de deliverability-wereld: veel @kpnmail.nl, @ziggo.nl, @xs4all.nl en @planet.nl ontvangers, plus de gebruikelijke Gmail- en Outlook-stack, plus overheids- en bankdomeinen die internet.nl-gewaardeerde policies draaien. Drie valkuilen pakken de meeste teams. Hieronder staat hoe ze eruit zien en wat je per stuk doet.

De DMARC-alignment valkuil

SPF groen op mxtoolbox is het veiligheidsdekentje dat elk team in de problemen brengt. SPF controleert alleen het Return-Path domein, ook wel envelope-from of bounce-adres genoemd. Je klant ziet dat nooit. Die ziet de From: header, met daar info@jouwbedrijf.nl. Stuur je via SendGrid, Postmark of Mailchimp, dan is het Return-Path iets als bounces+xyz@em1234.sendgrid.net. SPF slaagt voor dat ESP-domein. De mailserver van je klant draait vervolgens DMARC en vraagt of het SPF-passende domein en het From: domein dezelfde organisatorische root delen. Dat doen ze niet. DMARC faalt.

Dit heet alignment. SPF op zichzelf is niet genoeg. Je hebt of SPF-alignment nodig (een eigen Return-Path op je domein) of DKIM-alignment (DKIM-handtekening met een selector onder je domein). DKIM-alignment is de betrouwbaardere knop, omdat die forwarding via mailinglists en bedrijfsgateways overleeft.

De diagnose zit in de headers. Trek een testbericht binnen in Gmail, klik 'Origineel weergeven' en lees de Authentication-Results regel:

Authentication-Results: mx.google.com;
       dkim=pass header.i=@sendgrid.net header.s=s1;
       spf=pass (google.com: domain of bounces+xyz@em1234.sendgrid.net
                 designates 167.89.x.x) smtp.mailfrom=bounces+xyz@em1234.sendgrid.net;
       dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=jouwbedrijf.nl

Twee passes en een fail. Die fail is de regel die telt. dmarc=fail op header.from=jouwbedrijf.nl met dkim=pass header.i=@sendgrid.net vertelt je dat DKIM het juiste bericht heeft ondertekend, maar met het verkeerde domein. Fix: zet een CNAME als s1._domainkey.jouwbedrijf.nl richting je ESP, teken met die selector, en de volgende test laat dkim=pass header.i=@jouwbedrijf.nl zien. Nu heb je alignment en wordt DMARC groen.

Het SPF 10-lookup plafond

SPF heeft een harde limiet van 10 DNS-lookups tijdens evaluatie, vastgelegd in RFC 7208 sectie 4.6.4. Elk include:, a, mx, exists en redirect mechanisme telt mee. Sommige includes nesten weer andere includes, die ook tellen. Kom je boven de 10, dan geeft SPF een PermError terug. DMARC behandelt PermError als een fail, tenzij DKIM-alignment het bericht alsnog redt.

De Nederlandse MKB-stack loopt hier bijna per ongeluk tegenaan. Het _spf.google.com van Google Workspace is in zijn eentje al vier lookups. Tel daar een transactionele ESP bij op (SendGrid: twee), een marketing-ESP (Mailchimp: één), een CRM zoals ActiveCampaign of HubSpot (één tot drie), Postmark voor bonnetjes (één) en een agendatool. Voor je het weet zit je over de 10.

Tel ze vanuit de terminal:

dig +short TXT jouwbedrijf.nl | grep -i spf
# plak het record vervolgens in een lookup-teller, bijvoorbeeld:
# https://www.kitterman.com/spf/validate.html
Let op

SPF-flatteners zetten include: directives om in statische ip4: blokken om onder de 10 te blijven. Ze werken prima totdat een ESP zijn IP-ranges roteert, wat ze doen zonder dat te melden. Flatten je toch, dan heb je een cron-job nodig die wekelijks opnieuw flat. Anders sla je de flattener over en snoei je ongebruikte includes weg.

De nettere fix is delegeren. Stuur marketing vanaf news.jouwbedrijf.nl, transactioneel vanaf mail.jouwbedrijf.nl en zakelijke mail vanaf de root. Elk subdomein krijgt zijn eigen SPF en DKIM. De root blijft schoon en de marketingafdeling kan volgend kwartaal niet per ongeluk je factuur-agent slopen.

De BIMI-regel die ons verraste

BIMI zet je logo naast de afzendernaam in Gmail, Apple Mail en Yahoo. Het vraagt drie dingen: een DMARC-policy van p=quarantine of p=reject met pct=100, een logo in SVG Tiny PS 1.2 formaat, en (voor Gmail en Apple Mail) een Verified Mark Certificate van DigiCert of Entrust. De VMC kost ongeveer €1.200 tot €1.500 per jaar en vereist een geregistreerd merk.

De verrassing voor ons zat aan de merkkant. We gingen ervan uit dat elke registratie bij het Benelux-Bureau voor de Intellectuele Eigendom voldoende was. BOIP-dekking zit in de VMC-keten, maar het merkbeeld moet matchen met de SVG die je inlevert. Veel Nederlandse MKB'ers hebben een woordmerk geregistreerd ('Jouwbedrijf' als tekst) en een logo dat een gestileerd beeldmerk is. Een woordmerk-registratie ontgrendelt geen beeldmerk-BIMI. Je registreert het beeldmerk alsnog (traag, kost minimaal €240 voor één klasse bij BOIP) of je levert een SVG met alleen het woordmerk in, wat er meestal slechter uitziet dan helemaal geen logo.

Tweede verrassing: BIMI in Apple Mail eist expliciet de VMC. Gmail liet op een gegeven moment Common Mark Certificates toe voor niet-geregistreerde merken, maar die uitrol is onsamenhangend. De implementatie-richtlijnen van de BIMI Group veranderen sneller dan de meeste ops-teams ze checken.

Conclusie

Sla BIMI voorlopig over, tenzij je een schoon beeldmerk hebt en €1.500 op de begroting kunt missen. DMARC op p=reject plus DKIM-alignment pakt 95% van de deliverability-winst zonder de certificaat-dans.

Een audit van vijftien minuten die je vandaag draait

Dit is de check die we op elk nieuw klantdomein doen voordat we er een outbound agent op aansluiten. Open een terminal.

# 1. SPF-record. Tel de include: directives.
dig +short TXT jouwbedrijf.nl | grep -i spf

# 2. DMARC-policy. Zoek p= en rua=.
dig +short _dmarc.jouwbedrijf.nl TXT

# 3. DKIM-selector (vervang s1 door de selector van je ESP).
dig +short s1._domainkey.jouwbedrijf.nl TXT

# 4. Stuur een test naar een externe verifier.
# https://www.mail-tester.com/ geeft je een eenmalig adres.
# Forward je outbound erheen en lees de score.

Voor de Nederlandse context laat je je domein door internet.nl halen. Door de overheid gesteund, gratis, en het toetst je tegen SPF, DKIM, DMARC, DANE, TLS en een handvol standaarden die Nederlandse overheids- en bankdomeinen daadwerkelijk afdwingen. Een score onder 80 betekent dat minstens één van de inboxen van je klanten je op beleidsgronden filtert.

Zet tot slot DMARC aggregate-rapporten aan. Voeg rua=mailto:dmarc-reports@jouwbedrijf.nl toe aan je DMARC-record. De rapporten zijn XML, lelijk, en ze vertellen je binnen een week welke afzender op welk IP de alignment misloopt. Je hoeft ze niet dagelijks te lezen. Je moet ze hebben op het moment dat er iets stuk gaat.

De agent erft de DNS

Een outbound agent die facturen nabelt, vergaderingen plant of verzendnotificaties verstuurt, erft alle drie de valkuilen van het domein waarvandaan hij verzendt. De agent-code is meestal prima. Wat we zien is dat de SPF van het domein in 2019 voor de oorspronkelijke webhosting is opgezet, nooit aangeraakt, en dat marketing er zes maanden geleden nog een derde ESP bij heeft gezet. De eerste batch van de agent tikt het aantal lookups over de 10, de marketingmails liepen het vorige kwartaal al fout op DMARC-alignment, en niemand merkte het, omdat marketing open rates leest en geen bounce-rapporten.

Toen we vorig kwartaal de factuur-nabel agent bouwden voor een logistieke klant in Rotterdam, draaide de eerste week op 19% open rate. Inbox-plaatsing op @ziggo.nl zat op 31%. Nadat we de alignment hadden uitgezocht en het SPF-record hadden teruggesnoeid naar vier includes, draaide de volgende batch op 64% open met @ziggo.nl-plaatsing boven de 90%. De agent-code veranderde niet. De DNS wel. Dit is hoe de saaie helft van AI-agents er in de praktijk uitziet: de infrastructuur onder de slim ogende bot.

Kies één van de drie valkuilen. Draai het dig-commando. Verbaast het antwoord je, dan worden de volgende dertig minuten van je dag nuttiger dan de vergadering waar je heen ging.

Kern

SPF groen is geen DMARC groen. Alignment, niet pass-status, bepaalt of je uitgaande mail in de Nederlandse inbox belandt of in spam.

FAQ

Beschermt p=none eigenlijk iets?

Nee. p=none monitort, maar handhaaft niet. Mail komt nog steeds aan als DMARC faalt. Handig voor de eerste weken van een rollout terwijl je de alignment fixt, daarna ga je naar p=quarantine en later p=reject.

Kan ik BIMI draaien zonder een VMC?

Yahoo accepteert BIMI zonder VMC. Gmail en Apple Mail eisen er één. Zonder certificaat verschijnt het logo bij een klein stukje van het publiek, wat zelden de moeite van het SVG-werk waard is.

Wat is het verschil tussen SPF- en DKIM-alignment?

SPF-alignment vergelijkt het Return-Path domein met de From: header. DKIM-alignment vergelijkt het DKIM-signing domein met From:. Eén van beide passend is genoeg voor DMARC. DKIM overleeft forwarding.

Hoe vaak komen DMARC aggregate-rapporten binnen?

Dagelijks, van elke ontvangende provider die DMARC ondersteunt. Gmail, Microsoft en Yahoo sturen één XML per dag naar het adres in je rua= tag. De meeste teams parsen ze met een gratis tool zoals Postmark's DMARC Digest.

email automationautomationoperationsintegrationssecurity

Iets bouwen?

Start een project