Definitie
Een SPF Record (Sender Policy Framework record) is een DNS TXT-resource record gepubliceerd in de openbare DNS-zone van een domein, dat de IP-adressen, IPv6-prefixen en mailserver-hostnames opsomt die gemachtigd zijn om e-mail namens dat domein te verzenden. Wanneer een ontvangende mailserver een binnenkomend bericht accepteert, voert hij een query uit op de DNS van de verzender voor het SPF-record en vergelijkt het verbindende IP-adres met het beleid. Als het IP niet vermeld staat, kan de ontvangende server het bericht markeren als softfail, ronduit weigeren, of voor verdere evaluatie markeren — afhankelijk van de beleidskwalificator ingesteld door de domeineigenaar.
SPF werd voor het eerst geformaliseerd als IETF-standaard in RFC 4408 (2006) en later bijgewerkt naar de huidige gezaghebbende specificatie in RFC 7208, gepubliceerd door de Internet Engineering Task Force (IETF) in april 2014. Het is een van drie complementaire e-mailauthenticatiestandaarden naast DKIM (DomainKeys Identified Mail) en DMARC (Domain-based Message Authentication, Reporting, and Conformance).
Hoe het werkt
Het SPF-evaluatieproces omvat verschillende sequentiële stappen die door de SMTP-engine van de ontvangende mailserver worden uitgevoerd tijdens de MAIL FROM-fase van de SMTP-handshake.
De domeineigenaar publiceert een SPF TXT-record in DNS. Een typisch record volgt deze syntaxis: v=spf1 include:_spf.google.com ip4:203.0.113.5 ~all. De componenten zijn: v=spf1 (versie-identificatie), één of meer mechanismen (include, ip4, ip6, a, mx, exists), en een laatste kwalificator (+all, -all, ~all, ?all). De -all kwalificator betekent een hard fail — elke server die niet expliciet vermeld staat is niet gemachtigd. De ~all kwalificator (softfail) laat het bericht door maar noteert de beleidsdiscrepantie, vaak gebruikt tijdens migratieperiodes.
Wanneer een bericht aankomt, extraheert de ontvangende MTA (Mail Transfer Agent) het envelop-verzenderdomein (het MAIL FROM-adres, ook wel het RFC5321.MailFrom-adres genoemd) en voert een DNS TXT-lookup uit voor _spf.<domain> of direct op het domein-root. De SPF-bibliotheek evalueert elk mechanisme op volgorde totdat één matcht of de limiet van tien DNS-lookups is bereikt (de “SPF PermError”-limiet gedefinieerd in RFC 7208 sectie 4.6.4). Het resultaat — Pass, Fail, SoftFail, Neutral, TempError of PermError — wordt ingevoegd in de Received-SPF header van het bericht en doorgegeven aan het spamfilter en eventuele DMARC-beleidsengine.
Het is cruciaal om op te merken dat SPF de envelop-verzender (MAIL FROM) authenticeert, niet de zichtbare From-header in het berichtlichaam. Dit onderscheid betekent dat SPF alleen geen weergavenaam-spoofing in e-mailclients voorkomt — wat de reden is waarom DMARC-uitlijning — die vereist dat SPF- en/of DKIM-resultaten matchen met het RFC5322.From-domein — noodzakelijk is voor volledige bescherming.
Waar je het tegenkomt
SPF-records verschijnen in elke context waar e-mailleverbaarheid en verzenderreputatie ertoe doen. Transactionele e-mailinfrastructuur beheerd door diensten zoals Amazon SES, SendGrid, Mailgun, Postmark en SparkPost vereist dat domeineigenaren SPF include-mechanismen toevoegen die naar de verzendinfrastructuur van de provider verwijzen voordat berichten authenticatiecontroles passeren.
Wedstrijdplatformen die e-mailbevestigingsstemmen versturen — waaronder Woobox, ShortStack en aangepaste systemen die Mailchimp Transactional (Mandrill) gebruiken — vertrouwen op het feit dat het verzendende domein een geldig SPF-record heeft. Mailbox-providers waaronder Google (Gmail), Microsoft (Outlook / Exchange Online Protection) en Yahoo Mail evalueren SPF als invoer voor hun leverbaarheidsalgoritmen. Een ontbrekend of verkeerd geconfigureerd SPF-record verhoogt de waarschijnlijkheid aanzienlijk dat bevestigingsmails stilzwijgend in spammapen worden afgeleverd of helemaal worden geweigerd, waardoor stemmen onbevestigd blijven.
DNS-hostingpanelen van providers zoals Cloudflare, AWS Route 53, GoDaddy en Namecheap stellen SPF TXT-recordbewerking beschikbaar via hun beheerinterfaces. Diagnostische tools zoals MXToolbox SPF Lookup, Google Admin Toolbox en DMARCIAN’s SPF Surveyor stellen domeineigenaren in staat gepubliceerde records te inspecteren en te valideren.
Praktische voorbeelden
Een wedstrijdplatform verstuurt stem-bevestigingsmails vanaf [email protected]. Het domein votes.example.com heeft het SPF-record v=spf1 include:sendgrid.net -all. Wanneer Gmail een bevestigingsbericht ontvangt, voert zijn inkomende SMTP-server een query uit op DNS voor het SPF-record van votes.example.com, breidt het sendgrid.net-include-mechanisme uit, en controleert het verbindende IP tegen SendGrid’s gemachtigde serverlijst. Als het IP matcht, is het SPF-resultaat Pass en gaat het bericht door naar de inbox. Als het domein geen SPF-record had, zou Gmail’s filter het bericht als niet-geauthenticeerd behandelen, waardoor de waarschijnlijkheid van inboxplaatsing afneemt.
Een regionale krant-wedstrijd verandert van transactionele e-mailprovider van Mailchimp naar Amazon SES zonder zijn SPF-record bij te werken. Bevestigingsmails beginnen SPF-controles te falen bij Microsoft Outlook en worden bulk-gefolderd, waardoor kiezers het bevestigingsvenster missen. De wedstrijdbeheerder diagnosticeert het probleem met MXToolbox, voegt include:amazonses.com toe aan het SPF-record, en de leverbaarheid herstelt binnen het DNS-propagatie-venster (typisch 0-48 uur afhankelijk van TTL-instellingen).
Verwante begrippen
SPF is een pijler van de drie-standaard e-mailauthenticatiestack: zie DKIM voor cryptografische handtekeningverificatie en DMARC voor de beleidslaag die handelt op SPF- en DKIM-resultaten. De praktische impact op wedstrijd-operaties wordt beschreven in E-mailbevestiging Stem, waar leverbaarheid van het bevestigingsbericht de meest kritische operationele afhankelijkheid is. BIMI (Brand Indicators for Message Identification), een nieuwere standaard die voortbouwt op DMARC, stelt geverifieerde verzenders in staat een merklogo weer te geven in ondersteunende mailbox-providers — een opkomend vertrouwenssignaal dat hier niet wordt behandeld.