Een juiste SPF-recordconfiguratie helpt ontvangende mailservers bepalen of een verzendende server namens je domein mag mailen. SPF is een van meerdere controles. Een fout kan tot een weigering leiden, maar een SMTP-code zoals 550 5.7.26 bewijst op zichzelf niet dat SPF de oorzaak is. Sinds februari 2024 gelden bij Google en Yahoo authenticatievereisten, waarvan de precieze eisen afhangen van onder meer het verzendvolume en het soort berichten.
Veelvoorkomende problemen zijn dubbele records, overschrijding van de limiet van 10 DNS-opzoekende termen en een ongeschikte afsluitende kwalificatie. Zulke fouten kunnen de authenticatie en bezorging verstoren en dagen onopgemerkt blijven. Een bouncebericht maakt de oorzaak niet altijd duidelijk.
Deze handleiding behandelt de volledige SPF-configuratie: de syntaxis, voorbeelden voor TrekMail met Managed SMTP en BYO, publiceren in DNS en controle via de opdrachtregel. Heb je nog geen e-mail op je domein ingesteld? Begin dan met e-mail instellen op je eigen domein en voeg daarna deze authenticatielaag toe.
Wat SPF doet
SPF (Sender Policy Framework) publiceert in een DNS TXT-record welke servers voor een bepaalde domeinidentiteit mogen verzenden. De ontvangende server vergelijkt het verzendende IP-adres met dat beleid. Het resultaat hangt af van de overeenkomende mechanismen en kwalificaties; de ontvanger bepaalt vervolgens hoe hij het bericht behandelt. RFC 7208 definieert SPF voor de MAIL FROM-identiteit, oftewel de envelopafzender, en waar van toepassing HELO, niet voor de zichtbare From-header.
Zonder SPF ontbreekt dit DNS-beleid om gebruik van je domein als envelopafzender te beoordelen. Andere controles kunnen nog steeds helpen, maar SPF geeft ontvangers een expliciete lijst met toegestane verzenders.
De regel van één record
Per onderzochte domeinidentiteit mag je maar één SPF-record publiceren. Twee afzonderlijke TXT-records die beginnen met v=spf1 leveren een PermError op. Meerdere geciteerde tekstsegmenten binnen hetzelfde TXT-record worden daarentegen samengevoegd en zijn geen dubbele records. Ontvangers bepalen zelf hoe zij PermError behandelen. Dit probleem kan ontstaan wanneer je van provider wisselt of een marketingdienst toevoegt zonder de configuratie samen te voegen.
| Fout: twee afzonderlijke records | Goed: één samengevoegd record |
|---|---|
v=spf1 include:spf.trekmail.net -allv=spf1 include:_spf.google.com -all |
v=spf1 include:spf.trekmail.net include:_spf.google.com -all |
Bewerk het bestaande SPF-record en voeg de vereiste mechanismen daarin samen. Verwijder het niet eerst om daarna pas een nieuw record te maken: zo voorkom je een periode zonder SPF-beleid. Controleer bij een migratie dat de oude en nieuwe verzenders tijdens de overgang correct zijn opgenomen.
Stap 1: inventariseer alle diensten die namens je domein verzenden
Maak vóór een DNS-wijziging een lijst van alle diensten die mail verzenden als @yourdomain.com en controleer hun werkelijke envelopafzender. Als je een dienst vergeet, kan die na invoering van een record met -all een SPF-fail krijgen. De ontvanger beslist of dat tot weigering leidt. Vijf minuten inventariseren tegenover uren foutzoeken is een illustratieve vergelijking, geen tijdsgarantie; de benodigde controle hangt van je inrichting af.
Denk onder meer aan:
- Zakelijke e-mail: TrekMail, Google Workspace, Microsoft 365
- Transactionele e-mail: Amazon SES, SendGrid, Mailgun, Postmark
- Marketing: Mailchimp, HubSpot, Klaviyo, Brevo
- SaaS-diensten: Zendesk, Freshdesk, Shopify, Intercom
Sommige diensten gebruiken hun eigen return-path-domein, zoals bounce.mailchimp.com. Dan wordt SPF voor dat domein gecontroleerd en hoeft de dienst niet automatisch in jouw SPF-record. Bij gebruik van je eigen domein voor DMARC-uitlijning kan dat anders zijn. Controleer de documentatie en de envelopafzender van de leverancier voordat je een dienst weglaat.
Stap 2: stel je SPF-record samen
Een SPF-record is één DNS TXT-waarde; tekstsegmenten binnen hetzelfde record worden aaneengevoegd. De structuur blijft hetzelfde, ook als de mechanismen verschillen. De onderstaande IP-adressen en CIDR-bereiken zijn documentatievoorbeelden, geen productieadressen om over te nemen. Dit doen de belangrijkste onderdelen:
| Onderdeel | Voorbeeld | Functie |
|---|---|---|
| Versie | v=spf1 | Verplicht. Elk SPF-record begint hiermee. |
| include | include:domain.com | Raadpleegt het SPF-beleid van een provider. Telt mee voor de limiet van 10 DNS-opzoekende termen. |
| ip4 | ip4:203.0.113.0/24 | Staat rechtstreeks een IPv4-adres of CIDR-bereik toe. Hiervoor is geen DNS-opzoeking nodig. |
| ip6 | ip6:2001:db8::/32 | Hetzelfde voor IPv6. |
| -all | -all | Fail voor verzenders die nergens overeenkomen. De ontvanger bepaalt de afhandeling. Geschikt als alle legitieme verzenders zijn bevestigd. |
| ~all | ~all | Softfail voor niet-opgenomen verzenders. Geen garantie op bezorging; kan tijdens een gecontroleerde overgang worden gebruikt. |
Stap 3: SPF-configuratie per provider
Kies het scenario dat bij je infrastructuur past. De onderstaande records zijn voorbeelden: verifieer altijd de actuele instructies voor je provider en account voordat je ze publiceert. Gebruik je meerdere providers, voeg hun include-mechanismen dan samen in één record.
Scenario A: TrekMail Managed SMTP (Starter- en Agency-abonnementen)
Als Managed SMTP beschikbaar en actief is voor je TrekMail-abonnement, kan dit record de basis vormen, mits TrekMail je enige verzender is. Controleer de actuele DNS-instructies in je account:
v=spf1 include:spf.trekmail.net -all
TrekMail beheert de bijbehorende verzend-IP's. Voeg eventuele andere legitieme verzenddiensten ook toe.
Scenario B: TrekMail BYO SMTP (eigen verzendconfiguratie)
Gebruik je TrekMail voor je inbox en een eigen SMTP-provider voor uitgaande mail, volg dan diens instructies voor de gebruikte envelopafzender. De laatste bezorgstap gebruikt de IP-adressen van die SMTP-provider. Deze voorbeelden zijn niet voor elk account of elke return-path-configuratie direct toepasbaar.
# Amazon SES
v=spf1 include:amazonses.com -all
# SendGrid
v=spf1 include:sendgrid.net -all
Scenario C: Google Workspace
v=spf1 include:_spf.google.com -all
Scenario D: Microsoft 365
v=spf1 include:spf.protection.outlook.com -all
Scenario E: hybride configuratie (TrekMail + marketingplatform)
Gebruik je TrekMail voor teammail en HubSpot voor campagnes? Voeg de vereiste mechanismen samen in één record. Hieronder staat een voorbeeld met een accountgebonden HubSpot-waarde:
v=spf1 include:spf.trekmail.net include:456789.spf05.hubspotemail.net -all
De include-waarde van HubSpot is specifiek voor je portal. Haal jouw waarde uit de DNS-instellingen van HubSpot en neem het voorbeeld niet letterlijk over.
Stap 4: publiceer in DNS
Publiceer het SPF-beleid als TXT-record bij de DNS-provider van je domein. Log in bij Cloudflare, Namecheap, GoDaddy, Route 53 of de dienst die je DNS beheert. Als er al een SPF-record is, bewerk dat record.
- Type: TXT
- Host/naam:
@(of leeg laten, afhankelijk van je provider en het bedoelde domein) - Waarde: je volledige SPF-waarde, bijvoorbeeld
v=spf1 include:spf.trekmail.net -all - TTL: 3600 (1 uur)
Vervang na een bevoegde controle van de oude en nieuwe verzenders de inhoud van het bestaande SPF-record door de samengevoegde waarde. Maak geen tweede SPF-record en verwijder andere TXT-records voor domeinverificatie niet. Controleer daarna dat er precies één SPF-record voor de juiste domeinnaam bestaat. Eerder gecachte waarden kunnen nog blijven gelden tot hun TTL verloopt.
Stap 5: controleer je SPF-record
Controleer de DNS-waarde na publicatie ook via de opdrachtregel. Daarmee kun je resultaten van webcheckers vergelijken, maar ook deze opdrachten kunnen een cachende resolver gebruiken. Ze laten niet noodzakelijk zien wat iedere ontvanger op dat moment ziet.
# Mac, Linux, or Windows PowerShell
nslookup -q=txt yourdomain.com
# Linux/Mac alternative
dig txt yourdomain.com +short
Controleer deze drie punten:
- Precies één SPF-record dat begint met
v=spf1 - Alle benodigde
include-mechanismen zijn aanwezig - Het record eindigt met het bedoelde
-allof~all
Vind je twee afzonderlijke records die beginnen met v=spf1, voeg dan de bevoegde verzenders samen en verwijder alleen het overbodige duplicaat. Meerdere weergaveregels of geciteerde segmenten bewijzen op zichzelf geen duplicaat. Controleer daarnaast de recursieve SPF-evaluatie en authenticatie van echte berichten, inclusief DMARC-uitlijning.
Veelvoorkomende SPF-fouten oplossen
Veel problemen met SPF-configuratie vallen in de volgende drie categorieën. Gebruik de volledige foutmelding, authenticatieresultaten en DNS-controle om de oorzaak vast te stellen.
1. De limiet van 10 DNS-opzoekende termen (PermError)
SPF staat per evaluatie maximaal 10 termen toe die DNS-opzoekingen veroorzaken. Dat betreft onder meer include, a, mx, ptr, exists en redirect. Geneste evaluaties tellen mee; het gaat niet simpelweg om het totale aantal DNS-pakketten. Bij meer dan 10 van deze termen ontstaat PermError en kan een ontvanger mail weigeren.
Symptoom: een validator meldt PermError of "too many DNS lookups".
Oplossing: overweeg diensten als Mailchimp of Zendesk onder te brengen op een subdomein, bijvoorbeeld support.yourdomain.com. Dat heeft een eigen budget van 10 DNS-opzoekende termen. Configureer dan ook de daadwerkelijke MAIL FROM- of return-path-identiteit voor dat subdomein en controleer DMARC-uitlijning. Alleen een apart TXT-record toevoegen verplaatst de SPF-evaluatie niet.
2. Microsoft-consumentenmailboxen (550 5.7.515)
Een code als 550 5.7.515 is geen bewijs dat SPF geldig is of dat IP-reputatie de oorzaak is. Lees de volledige Microsoft-melding. Voor grote verzenders naar persoonlijke Outlook.com-mailboxen moeten zowel SPF als DKIM slagen, naast DMARC met ten minste één afgestemde succesvolle controle. Dat verschilt van de algemene DMARC-regel, waarvoor afgestemde SPF of DKIM volstaat. Ook met geslaagde authenticatie kunnen reputatie en filters de bezorging beïnvloeden. Zie de beveiligingsbasis voor zakelijke e-mail voor DKIM en DMARC.
3. Softfail (~all) tegenover fail (-all)
| Kwalificatie | Signaal aan de ontvanger | Wanneer gebruiken |
|---|---|---|
~all (SoftFail) | Niet-overeenkomende verzender krijgt softfail; de ontvanger beslist over bezorging. | Tijdens een gecontroleerde inventarisatie, bijvoorbeeld 2 tot 4 weken, als dat bij je overgang past. |
-all (HardFail) | Niet-overeenkomende verzender krijgt fail; geen automatische garantie op weigering. | Wanneer alle legitieme verzenders zijn bevestigd en het beleid bij je inrichting past. |
~all geeft SoftFail en ?all geeft Neutral: dat laatste is geen negatieve SPF-fail, maar doet geen uitspraak over de autorisatie van de verzender. SPF alleen voorkomt geen misbruik van de zichtbare afzender. Zodra alle verzenders zijn gecontroleerd, kun je -all overwegen in combinatie met DKIM en DMARC.
SPF instellen met TrekMail
DNS-records beheren en SMTP-fouten onderzoeken kost tijd. Als de SPF/DKIM/DMARC-wizard in je TrekMail-account beschikbaar is, kan die je helpen de passende configuratie voor Managed SMTP of BYO te vinden. De DNS-controle vergelijkt verwachte records; zij bewijst geen geldige berichtsignatuur, DMARC-uitlijning of plaatsing in de inbox. Controleer de waarden en echte berichten voor je eigen inrichting.
Voor bureaus met meerdere klantdomeinen is een consistente SPF-configuratie belangrijk. Gebruik, waar beschikbaar binnen je abonnement, TrekMail's multi-domeindashboard om authenticatiestatussen te bekijken. DNS-wijzigingen voer je nog steeds uit bij de verantwoordelijke provider. Lees meer over e-mailhosting voor meerdere domeinen en e-mail maken met een eigen domein.
Het historische aanbod vermeldt Starter vanaf $3.50 per maand met Managed SMTP, Nano als gratis ontvangoptie zonder creditcard of aflopende proefperiode, en een gratis proefperiode van 14 dagen voor betaalde abonnementen met een creditcardvereiste. Controleer de actuele prijzen, rechten, limieten en voorwaarden vóór aanmelding. Alleen in het beschreven Nano-model is je eigen externe SMTP vereist voor elk uitgaand bericht, inclusief antwoorden; beheerde verzending in betaalde plannen hangt van de feitelijke rechten en configuratie af. Bekijk TrekMail.
De volledige SPF-checklist
Loop vóór je afrondt deze zeven stappen na. Een eenvoudige configuratie kan binnen 15 minuten klaar zijn, maar meerdere verzenddiensten en DNS-caches kunnen extra verificatietijd vragen.
- Alle diensten met je domein als envelopafzender geïnventariseerd
- Bevestigd dat er nul of één bestaand SPF-record is, geen twee
- Eén samengevoegde
v=spf1-waarde gemaakt voor alle vereiste providers - Gepubliceerd als TXT-record op
@voor het bedoelde domein, met TTL 3600 - Het bestaande record bijgewerkt zonder eerst een gat in het SPF-beleid te maken
- Gecontroleerd met
dig txt yourdomain.com +short - Precies één SPF-resultaat bevestigd dat begint met
v=spf1en eindigt met het gekozen-all
Maak je DNS-configuratie overzichtelijk. Begin met verzenden via TrekMail.