Een SPF-record bepaalt welke servers namens uw domein e-mail mogen verzenden. Fouten in de SPF-configuratie leiden tot afgewezen e-mail of een te zwakke bescherming. Veelvoorkomende problemen zijn te veel DNS-lookups, syntaxfouten en een verkeerd gekozen fail-mechanisme. In dit artikel leest u hoe u deze SPF-fouten oplost.
Probleem
Uw e-mail wordt geweigerd of als verdacht gemarkeerd met een melding over SPF, of een SPF-controle geeft een PermError of een onverwachte uitkomst. De SPF-bescherming werkt niet zoals bedoeld door een fout in het record.
Oorzaak
De bekendste SPF-fout is de limiet van tien DNS-lookups. SPF mag tijdens evaluatie maximaal tien opzoekacties uitvoeren; met veel include-mechanismen wordt deze limiet snel overschreden, wat resulteert in een PermError en een mislukte SPF-controle.
Een tweede oorzaak zijn syntaxfouten: meerdere SPF-records voor één domein, een ontbrekend afsluitend mechanisme, of een verkeerd geplaatst teken. SPF staat slechts één record per domein toe.
Een derde oorzaak is een verkeerd gekozen fail-mechanisme. Een softfail (~all) markeert verdachte mail slechts, terwijl een hardfail (-all) deze afwijst. Een te ruime instelling biedt weinig bescherming.
Oplossing
Tel het aantal DNS-lookups in uw SPF-record. Blijft u onder de tien? Zo niet, verminder includes, gebruik waar mogelijk directe ip4/ip6-mechanismen of een SPF-flattening-oplossing.
Zorg voor één geldig SPF-record per domein met correcte syntax en een afsluitend all-mechanisme.
Kies bewust tussen ~all (softfail) en -all (hardfail), afgestemd op hoe streng u wilt zijn en in combinatie met DMARC.
Stappenplan
- Vraag uw huidige SPF-record op met een SPF-checker.
- Controleer of er slechts één SPF-record bestaat.
- Tel het aantal DNS-lookups en blijf onder de tien.
- Verwijder overbodige includes of vervang ze door directe ip4/ip6-mechanismen.
- Controleer de syntax en het afsluitende all-mechanisme.
- Kies bewust tussen softfail (~all) en hardfail (-all).
- Sla het gecorrigeerde record op en wacht op propagatie.
- Verstuur een testmail en controleer de SPF-uitslag in de headers.
Voorbeeld correct SPF-record
Een goed SPF-record bevat de toegestane verzenders en sluit af met een fail-mechanisme. Onderstaand een voorbeeld voor een domein dat via Microsoft 365 verzendt.
Voorbeeld:
v=spf1 include:spf.protection.outlook.com -all # Fout: twee SPF-records of >10 lookups
De tien-lookup-limiet begrijpen
De limiet van tien DNS-lookups is bedoeld om misbruik en eindeloze verwijzingen te voorkomen. Elk include-, a-, mx-, ptr- en exists-mechanisme telt mee. Diensten die zelf weer naar andere domeinen verwijzen, kunnen het aantal lookups onverwacht opdrijven.
Wanneer u de limiet nadert, helpt het om alleen de daadwerkelijk gebruikte verzenders op te nemen en includes van ongebruikte diensten te verwijderen. SPF-flattening, waarbij includes worden vervangen door de onderliggende IP-adressen, kan het aantal lookups verlagen, maar vraagt onderhoud omdat IP-adressen kunnen wijzigen.
Het is belangrijk te beseffen dat een PermError door te veel lookups de hele SPF-controle laat falen, niet slechts een deel. Eén te veel kan dus uw afleverbaarheid raken.
- Maximaal tien DNS-lookups bij SPF-evaluatie
- include, a, mx, ptr en exists tellen mee
- Een PermError laat de hele SPF-controle falen
Veelgemaakte fouten
- Meerdere SPF-records voor één domein instellen.
- De limiet van tien DNS-lookups overschrijden.
- Een te ruim mechanisme zoals +all gebruiken, wat alle verzenders toestaat.
- Includes van ongebruikte diensten laten staan.
- Een syntaxfout of ontbrekend all-mechanisme.
- SPF instellen zonder DMARC, waardoor handhaving beperkt blijft.
Controle na afloop
- Controleer met een SPF-checker dat er één geldig record is.
- Controleer dat het aantal lookups onder de tien blijft.
- Verstuur een testmail en bekijk de SPF-uitslag in de headers.
- Controleer dat de gekozen fail-instelling het gewenste effect heeft.
Praktische tips
- Houd uw SPF-record minimaal: alleen de verzenders die u echt gebruikt.
- Gebruik bij voorkeur -all in combinatie met een goed DMARC-beleid.
- Controleer het aantal lookups na elke wijziging.
- Documenteer welke include bij welke dienst hoort.
Veelgestelde vragen
Wat betekent een SPF PermError?
Een PermError betekent meestal dat het SPF-record ongeldig is of dat de limiet van tien DNS-lookups is overschreden. De SPF-controle faalt dan volledig.
Mag ik twee SPF-records hebben?
Nee. Per domein is slechts één SPF-record toegestaan. Combineer alle verzenders in één record met meerdere include-mechanismen.
Wat is het verschil tussen ~all en -all?
~all is een softfail die verdachte mail markeert maar doorlaat; -all is een hardfail die niet-geautoriseerde mail afwijst. -all biedt strengere bescherming, zeker met DMARC.
Samenvatting
Veelvoorkomende SPF-fouten zijn meerdere records, het overschrijden van de tien-lookup-limiet, syntaxfouten en een te ruim fail-mechanisme. Houd één geldig SPF-record per domein, blijf onder de tien lookups, kies bewust tussen ~all en -all en combineer SPF met DMARC. Controleer na elke wijziging de SPF-uitslag in een testmail.
Gerelateerde artikelen
- SPF-record instellen: e-mail authenticeren tegen spoofing
- DMARC instellen: beleid en rapportage voor e-mail
- DKIM instellen: e-mail digitaal ondertekenen
Komt u er niet uit? Plan een gratis strategiegesprek via https://www.bdmnl.nl/plan.
Was dit artikel nuttig?
Dat is fantastisch!
Hartelijk dank voor uw beoordeling
Sorry dat we u niet konden helpen
Hartelijk dank voor uw beoordeling
Feedback verzonden
We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren