SPF PermError oplossen in 2026

Gepubliceerd op 3 juni 2026 · 4 min. leestijd · spFlat!

Overschrijdt je SPF-record de limiet van 10 DNS-lookups, dan weigeren ontvangende mailservers het met een PermError: een permanente fout. Je e-mail krijgt geen softfail, maar loopt keihard vast.

Wat het veroorzaakt, hoe je het herkent en hoe je het definitief oplost, lees je hieronder.


Wat is een SPF PermError?

Met SPF (Sender Policy Framework) geven domeineigenaren aan welke mailservers namens hen e-mail mogen versturen. De SPF-specificatie (RFC 7208) legt tijdens de SPF-evaluatie een harde limiet op van 10 DNS-lookups.

Overschrijdt je record die limiet, dan geeft de ontvangende mailserver een PermError terug en stopt de SPF-controle volledig. Het gevolg verschilt per ontvanger:

  • Strikte ontvangers (Gmail, Outlook.com) behandelen het als SPF-fail.
  • Mildere ontvangers behandelen het als neutral of softfail.
  • Hoe dan ook krijgt je bezorgbaarheid een klap.
🔴 Het addertje: de meeste DNS-validatietools controleren alleen de syntax, niet wat er bij de evaluatie gebeurt. Je SPF-record kan dus syntactisch geldig zijn en toch niet werken.

Waarom gebeurt dit?

De limiet van 10 lookups is snel bereikt, omdat elk SPF-include:-statement als één lookup telt, maar daarachter ook meer lookups kan verbergen.

Veelvoorkomende boosdoeners:

  • Google Workspace (include:_spf.google.com): voegt intern zo'n 4 à 5 lookups toe
  • Microsoft 365 (include:spf.protection.outlook.com): voegt zo'n 2 à 3 lookups toe
  • Mailchimp, SendGrid, Mailgun, Mandrill, HubSpot, Salesforce: elk minstens 1 lookup
  • Eigen a:- of mx:-mechanismen met meerdere A/AAAA-records

Een gemiddeld middelgroot bedrijf met Gmail, Outlook, Mailchimp en één CRM zit op papier al op 8 tot 12 lookups, maar de werkelijke keten komt vaak ruim boven de 15 uit zodra geneste includes zijn opgelost.

Hoe herken je het?

Optie 1: Gebruik de spFlat!-checker (gratis, geen account nodig)

Ga naar spflat.cloud, voer je domein in en klik op Controleren. De tool lost je volledige SPF-keten op, inclusief alle geneste includes, en laat precies zien hoeveel lookups je verbruikt.

Optie 2: Handmatige dig-keten


dig TXT yourdomain.com +short | grep -o 'include:[^ ]*' | while read inc; do
  dig TXT ${inc#include:} +short
done

Dit geeft een ruwe telling, maar slaat geneste includes over, tenzij je het script uitbreidt met diepere loops.

Optie 3: Online SPF-validators

Tools zoals dmarcian.com of mxtoolbox.com kunnen helpen, maar veel daarvan stoppen bij 10 lookups en kijken niet verder. Dat geeft een vals gevoel van veiligheid.

Zo los je het op (de moeilijke manier)

Wil je dit handmatig doen?

  1. Los elke include:, a:, mx: en ptr: in je record op
  2. Verzamel alle resulterende IP-adressen en CIDR-ranges
  3. Bouw een nieuw record met alleen ip4:- en ip6:-mechanismen
  4. Publiceer het in je DNS

Voor:

v=spf1 include:_spf.google.com include:spf.protection.outlook.com include:mailgun.org ~all

Na handmatig afvlakken:

v=spf1 ip4:209.85.128.0/17 ip4:40.92.0.0/15 ip4:209.61.151.0/24 ~all
⚠️ Het probleem met handmatig afvlakken: over twee weken kan Google of Microsoft zijn verzend-IP-ranges wijzigen. Dat merk je pas als je e-mail begint te bouncen. Dan moet je dit hele proces herhalen, en dat telkens als er bij een aanbieder iets wijzigt.

Zo los je het op (de slimme manier)

Precies dit probleem lost spFlat! voor je op:

  1. Controleer je domein op spflat.cloud en zie direct hoeveel lookups je nu gebruikt
  2. Voeg je domein met je huidige includes toe aan spFlat!
  3. Publiceer één DNS-record: spFlat! bewaakt IP-wijzigingen van aanbieders 24/7 en houdt je record automatisch bij

Geen handmatige lookups. Geen spreadsheets met IP-wijzigingen. Geen nachtelijk debuggen omdat Google zijn ranges heeft gewijzigd.

Preventie

Is je SPF-record eenmaal afgevlakt, houd het dan zo op orde:

  • Voeg nieuwe e-maildiensten toe via spFlat! en wijzig het TXT-record niet rechtstreeks
  • Houd DMARC-rapporten in de gaten: een plotselinge daling van het aantal berichten met SPF-alignment is vaak het eerste teken van een IP-wijziging bij een aanbieder
  • Gebruik geautomatiseerde monitoring: spFlat! bewaakt je records met 99,9% uptime vanaf 12 locaties wereldwijd

🔍 Controleer je domein nu

Tien seconden. Gratis. Bekijk precies hoeveel lookups je SPF-record verbruikt, inclusief alle geneste includes.

Controleer je SPF
Of start je gratis proefperiode van 14 dagen →

Veelgestelde vragen

Wat veroorzaakt een SPF PermError?

De meest voorkomende oorzaak is het overschrijden van de harde limiet van 10 DNS-lookups uit RFC 7208 tijdens de SPF-evaluatie. Dat gebeurt meestal doordat include:-statements weer geneste lookups bevatten (bijvoorbeeld van Google Workspace, Microsoft 365, Mailchimp, SendGrid of een CRM). Een record ziet er in je DNS-beheer dan prima uit, maar loopt bij de daadwerkelijke evaluatie vast.

Hoe los ik een SPF PermError door te veel lookups op?

Vlak het SPF-record af: zet elke include:, a:, mx: en ptr: om naar IP-adressen en publiceer alleen ip4:- en ip6:-mechanismen. Of gebruik een geautomatiseerde flatteningdienst die IP-wijzigingen van aanbieders 24/7 bewaakt. Handmatig afvlakken werkt één keer, maar gaat mis zodra Google of Microsoft zijn ranges wijzigt.

Heeft een SPF PermError invloed op de bezorging bij Outlook.com en Gmail?

Ja. Strikte ontvangers zoals Gmail en Outlook.com behandelen een PermError als SPF-fail. Mildere ontvangers zien hem mogelijk als neutral of softfail. Hoe dan ook lijdt je bezorgbaarheid eronder.

Wat is het verschil tussen SPF-fail en SPF PermError?

SPF-fail betekent dat het IP-adres van de afzender niet is geautoriseerd volgens een geldig SPF-beleid. SPF PermError betekent dat de evaluatie niet kon worden afgerond, meestal omdat het record meer dan 10 DNS-lookups nodig heeft of een syntax- of DNS-fout bevat. Veel ontvangers behandelen een PermError even streng als een fail, maar de oplossing is anders: het record repareren of afvlakken, niet alleen een extra IP-adres autoriseren.