SPF Record Syntax

door

Laatst bijgewerkt:
5 leestijd: 5 minuten
SPF Record Syntax

Belangrijkste Conclusies

  • SPF-records maken gebruik van mechanismen, kwalificaties en modificatoren om te bepalen welke bronnen e-mail mogen verzenden namens uw domein.
  • Mechanismen zoals include, a, mx, ptr en exists kunnen DNS-zoekopdrachten activeren, terwijl ip4, ip6 en all niet meetellen voor de limiet.
  • SPF-kwalificaties bepalen hoe ontvangende servers omgaan met overeenkomende afzenders, waarbij -all staat voor Fail en ~all voor SoftFail.
  • Een SPF-record kan een PermError veroorzaken als het de limiet van 10 DNS-lookups overschrijdt, waardoor legitieme e-mails mogelijk de SPF-authenticatie niet doorstaan.
  • Een domein mag slechts één SPF-record bevatten, en syntaxfouten zoals een ontbrekend `v=spf1`, onjuiste opmaak of het gebruik van het verouderde `ptr`-attribuut kunnen authenticatieproblemen veroorzaken.

Een SPF-record is een enkele tekstreeks die als DNS TXT-record wordt gepubliceerd. Het fungeert als een reeks regels die precies bepalen welke IP-adressen e-mails mogen versturen namens uw domein. Een correct opgemaakt record begint altijd met een versietag, gevolgd door een of meer mechanismen, en eindigt met een handhavingsregel.

Hier volgt een standaard SPF-record, opgesplitst in zijn afzonderlijke onderdelen:

v=spf1 ip4:192.0.2.0/24 include:_spf.google.com ~all

  • v=spf1: De versietag waarmee het record begint.
  • ip4:192.0.2.0/24: Een mechanisme waarmee een specifiek IPv4-bereik wordt geautoriseerd.
  • omvat:_spf.google.com: Een mechanisme waarbij een domein verwijst naar de lijst met goedgekeurde IP-adressen van een externe afzender.
  • ~all: De kwalificatie (~) en het mechanisme (all) die het fallback-beleid voor niet-geautoriseerde afzenders bepalen.

Als je een nieuw record voor je domein moet aanmaken, gebruik dan een SPF-recordgenerator om de exacte tekenreeks automatisch samen te stellen.

SPF-mechanismen

Mechanismen vormen de bouwstenen van je SPF-record. Ze geven de ontvangende mailserver aan hoe geautoriseerde afzenders kunnen worden geïdentificeerd.

MechanismeWaarmee het pastEen VoorbeeldTelt mee voor de limiet van 10 zoekopdrachten
alleKomt altijd overeen. Wordt helemaal aan het einde van een record gebruikt als een algemene regel voor elk IP-adres dat niet door de voorgaande mechanismen wordt herkend.~allesGeen
opnemenDit komt overeen als het IP-adres van de afzender is geautoriseerd volgens het SPF-beleid van het opgegeven domein.opnemen:_spf.google.comJa
aKomt overeen als het IP-adres van de afzender overeenkomt met het IP-adres dat wordt omgezet vanuit het A- of AAAA-DNS-record van het domein.a:example.comJa
mxWordt gevonden als het IP-adres van de afzender overeenkomt met een van de IP-adressen die in de MX-records van het domein staan vermeld.mx:example.comJa
ip4Wordt gevonden als het IP-adres van de afzender precies binnen het gedefinieerde IPv4-netwerk of subnetbereik valt.ipv4:192.0.2.0/24Geen
ip6Komt overeen als het IP-adres van de afzender precies binnen het gedefinieerde IPv6-netwerk of subnetbereik valt.ip6:2001:db8::/32Geen
ptrGeeft een treffer als de reverse DNS voor het IP-adres verwijst naar het opgegeven domein. (Verouderd en sterk afgeraden vanwege de belasting van de systeemprestaties).ptr:example.comJa
bestaatGeldt als een DNS A-record voor de opgegeven domeinnaam succesvol wordt omgezet.bestaat:example.comJa

Het include-mechanisme

Het ‘include’-mechanisme is een van de meest gebruikte onderdelen bij moderne e-mailverificatie. Het geeft ontvangende servers de opdracht om de SPF-regels van een externe dienst, zoals Google Workspace, Microsoft 365 of een marketingplatform, op te zoeken en te beoordelen. Als die externe leverancier de IP-adressen van zijn eigen servers bijwerkt, blijft uw record geldig zonder dat handmatige aanpassingen nodig zijn.

Het volledige mechanisme

Het ‘all’-mechanisme staat altijd helemaal aan het einde van de reeks en fungeert als de ultieme standaardregel. Het vangt elk IP-adres van de afzender op dat niet overeenkomt met de eerdere mechanismen in het record. Om effectief te zijn, moet het worden gecombineerd met een kwalificator (zoals – of ~) die de ontvangende server aangeeft of de ongeautoriseerde e-mail moet worden geweigerd of geaccepteerd.

Het a-mechanisme

Dit mechanisme autoriseert het IP-adres dat is gekoppeld aan het A- of AAAA-record van een domein. Dit is met name handig wanneer de webserver waarop uw primaire website wordt gehost, ook wordt gebruikt voor het verzenden van uitgaande e-mails, zoals meldingen via het contactformulier op de website of systeemwaarschuwingen.

Het mx-mechanisme

Als de servers die zijn aangewezen om uw inkomende e-mail te ontvangen (zoals vermeld in uw MX-records) ook het verzenden van uw uitgaande berichten afhandelen, is het MX-mechanisme de juiste keuze. Hiermee wordt aan die specifieke IP-adressen van inkomende mailservers toestemming gegeven om namens het domein uitgaande e-mail te verzenden.

SPF-kwalificeerders

Kwalificaties fungeren als voorvoegsels die aan mechanismen worden toegevoegd (meestal het ‘all’-mechanisme). Ze bepalen precies hoe de ontvangende server een e-mail moet behandelen wanneer het IP-adres van de afzender overeenkomt met het mechanisme.

KwalificatieResultaatBetekenisVoorbeeld
+PasHet IP-adres is volledig bevoegd om e-mails te versturen. Het +-teken is optioneel en wordt standaard verondersteld.+alles
-StoringHet IP-adres is absoluut niet toegestaan. De e-mail moet volledig worden geweigerd.-all
~SoftfailHet IP-adres is niet geautoriseerd, maar de e-mail wordt wel geaccepteerd en meestal als spam gemarkeerd of in quarantaine geplaatst.~alles
?NeutraalEr wordt geen expliciet beleid vermeld. De e-mail wordt behandeld alsof er helemaal geen SPF-regel van toepassing is.?alles

SPF-aanpassers

Modificatoren geven aanvullende instructies of contextuele details weer in het SPF-record. Ze zijn optioneel en mogen slechts één keer voorkomen; doorgaans worden ze helemaal aan het einde van de tekenreeks geplaatst.

Bepalend woordWat het doetEen VoorbeeldOpmerkingen
doorsturenGeeft de ontvangende server de opdracht om de huidige regels te negeren en in plaats daarvan het SPF-record van een ander domein te gebruiken.v=spf1 redirect=example.comDe omleiding wordt volledig genegeerd als er ook een ‘all’-mechanisme in het record voorkomt.
expHiermee wordt een aangepast domein opgegeven waarop een TXT-record is gehost dat een uitleg geeft wanneer een SPF-controle mislukt.exp=explain.example.comWordt zelden gebruikt in moderne e-mailverificatiesystemen en wordt vaak genegeerd door grote ontvangstservers.

Resultaten van de SPF-evaluatie

Wanneer een ontvangende mailserver een binnenkomend bericht toetst aan uw SPF-record, geeft deze op basis van uw syntaxis een van de zeven gestandaardiseerde beoordelingsresultaten weer.

ResultaatWat het betekentWat de ontvanger doorgaans doet
PasHet IP-adres van de afzender kwam overeen met een geautoriseerd mechanisme in uw gegevens.De e-mail wordt geaccepteerd, in afwachting van verdere DMARC-, DKIM- en algemene spamcontroles.
StoringHet IP-adres van de afzender kwam overeen met een mechanisme met de kwalificatie -.De e-mail wordt op serverniveau verwijderd of afgewezen voordat deze de inbox bereikt.
SoftFailHet IP-adres van de afzender kwam overeen met een mechanisme dat de kwalificatie „~“ bevatte.De e-mail wordt wel ontvangen, maar als verdacht gemarkeerd, waardoor deze vaak in de spammap terechtkomt.
NeutraalHet IP-adres van de afzender kwam overeen met een ‘?’-kwalificatie, of het record leverde geen eenduidige conclusie op.Verwerkt de e-mail strikt op basis van de eigen spamfiltercriteria van de server.
GeenEr is geen geldig SPF-record gevonden voor het betreffende domein.De e-mail wordt als niet-geverifieerd behandeld, wat de afleverbaarheid ernstig schaadt.
PermErrorHet record bevat een permanente syntaxfout of overschrijdt de limiet van 10 zoekopdrachten.De SPF-controle mislukt onmiddellijk, waardoor de e-mail als niet-geverifieerd wordt beschouwd en waarschijnlijk wordt geweigerd.
Tijdelijke foutDoor een tijdelijke DNS-time-out of een netwerkstoring kon de controle niet worden voltooid.Stelt de verzending van de e-mail tijdelijk uit en probeert het later opnieuw.

De limiet van 10 DNS-opzoekingen

Om te voorkomen dat kwaadwillenden SPF gebruiken om denial-of-service-aanvallen op DNS-servers uit te voeren, legt de SPF-specificatie een strikte limiet op. Een ontvangende server voert maximaal 10 DNS-opzoekingen uit om één enkel SPF-record te beoordelen.

Mechanismen waarvoor een backend-DNS-query nodig is, zijn onder meer include, a, mx, ptr, exists en de redirect-modificator. Belangrijk is dat mechanismen zoals ip4, ip6 en all onmiddellijk werken zonder dat er DNS-lookups nodig zijn, wat betekent dat ze niet meetellen voor je limiet.

Als uw configuratie meer dan 10 lookups bevat, zullen ontvangende servers onmiddellijk een SPF PermError terugsturen. Dit maakt uw beleid volledig ongeldig en zorgt ervoor dat legitieme e-mails de authenticatie niet doorstaan. Organisaties die gebruikmaken van meerdere externe e-mailproviders (zoals een CRM-systeem, een helpdesk en een platform voor marketingautomatisering) kunnen deze drempel heel gemakkelijk bereiken.

Om deze beperking op te lossen, kun je de Hosted SPF-oplossing oplossing van PowerDMARC implementeren. Hiermee worden de domeinmechanismen van derden teruggebracht tot platte IP-adressen, waardoor het aantal opzoekingen onmiddellijk afneemt. Je dient je domein ook te controleren via een SPF-recordchecker om uw huidige totaal aantal lookups te meten en kwetsbaarheden op te sporen voordat deze de afleverbaarheid beïnvloeden. 

Controleer je huidige SPF-status – telt in seconden

Veelvoorkomende fouten in de SPF-syntaxis

Om een geldig SPF-record aan te maken, moet je je strikt aan de opmaakregels houden. Eén enkel verkeerd teken kan je authenticatie al ongeldig maken. Dit zijn de meest voorkomende syntaxfouten:

  • Meer dan één SPF-record op een domein: Een domein mag precies één TXT-record publiceren dat begint met v=spf1. Het publiceren van meerdere records leidt onmiddellijk tot een PermError.
  • Ontbrekende v=spf1: Als de tekenreeks niet met precies deze versietag begint, zullen ontvangende servers het TXT-record gewoon negeren.
  • Gebruik van +all: Deze combinatie geeft aan dat letterlijk elk IP-adres op internet bevoegd is om namens u e-mails te versturen, waardoor het record in feite onbruikbaar wordt.
  • Trailing ptr: Het ptr-mechanisme legt een enorme belasting op ontvangende servers. Het is officieel verouderd en zal prestatieproblemen veroorzaken als het wordt opgenomen.
  • Meer dan 10 opzoekacties: Als er te veel include-instructies worden genest, wordt de limiet voor DNS-lookups overschreden en wordt het record automatisch ongeldig.
  • Spaties of ontbrekende dubbele punten in mechanismen: Opmaakfouten, zoals het typen van `include _spf.google.com` in plaats van de juiste `include:_spf.google.com`, verstoren de syntaxisherkenning.

[ONGEWIJZIGD LATEN: Bestaande CTA-blokken]

Veelgestelde Vragen

Wat is de juiste syntaxis voor een SPF-record?

Een SPF-record moet worden gepubliceerd als een DNS TXT-record dat begint met de versie-tag `v=spf1`, gevolgd door uw geautoriseerde IP-adressen of mechanismen, gescheiden door spaties, en eindigt met een strikt fallback-mechanisme, zoals `~all` of `-all`.

Wat betekent ~all in een SPF-record?

Het ~all-mechanisme duidt op een SoftFail-fallbackbeleid. Het geeft ontvangende servers aan dat elk IP-adres van een afzender dat niet expliciet in uw record is vermeld, niet geautoriseerd is, maar dat de e-mail toch moet worden geaccepteerd en doorgestuurd naar de spamfolder van de ontvanger.

Wat is het verschil tussen ‘include’ en ‘redirect’?

Het ‘include’-mechanisme evalueert de SPF-regels van een ander domein naast die van uzelf, waardoor u meerdere verzendbronnen kunt combineren. De ‘redirect’-modificator geeft de ontvangende server de opdracht om uw record volledig te negeren en in plaats daarvan het SPF-record van het opgegeven domein te gebruiken.

Hoe kan ik de syntaxis van mijn SPF-record controleren?

Je kunt je opmaak controleren en het aantal actieve lookups berekenen door je domein in te voeren in een gratis SPF-recordchecker. Deze zal onmiddellijk syntactische fouten, verouderde mechanismen en overschrijdingen van limieten signaleren.

Mag ik twee SPF-records hebben?

Nee, het publiceren van meerdere SPF-records voor één domein is in strijd met het kernprotocol. Als een ontvangende server meer dan één record aantreft dat begint met v=spf1, zal deze onmiddellijk een PermError retourneren en de authenticatie afwijzen.

SPF-syntaxis