Hoe ziet een SPF-record eruit?
Een SPF-record begint altijd met v=spf1. Daarna volgen regels die servers toestaan, en aan het eind meestal een regel voor alle andere servers. Een voorbeeld uit de RFC:
v=spf1 +mx a:colo.example.com/28 -all
Hier mogen de mailservers van het domein (mx) en de adressen uit colo.example.com/28 mailen. Het teken voor all bepaalt wat er met de rest gebeurt:
| Teken | Uitkomst | Betekenis |
|---|---|---|
-all | fail | De server heeft geen toestemming. |
~all | softfail | De server heeft waarschijnlijk geen toestemming. Weigeren alleen op basis hiervan raadt de RFC af. |
?all | neutral | Het domein doet geen uitspraak. |
+ | pass | De server heeft wel toestemming. Zonder teken geldt dit. |
SPF controleert het domein uit de envelop van de mail (MAIL FROM) en de servernaam bij het begin van de verbinding (HELO). Het From-adres dat de ontvanger ziet, valt daar niet onder.
Voorbeeld: een webshop met een nieuwsbriefdienst
Webshop Bladgroen uit Amersfoort mailt via drie systemen: de eigen mailserver, een nieuwsbriefdienst en een factuurprogramma. Het SPF-record noemt alleen de eigen mailserver. Nieuwsbrieven aan Gmail-adressen belanden daardoor vaker in de spammap.
De webshop voegt de twee andere systemen toe aan hetzelfde record, met de include-regels die de dienstverleners opgeven. Een tweede SPF-record aanmaken mag niet. Daarna telt de webshop de DNS-opzoekingen na, zodat het record binnen de grens van tien blijft.
Waar gaat een SPF-record vaak mis?
- Meer dan één record: RFC 7208 staat per domeinnaam maar één SPF-record toe. Voeg alle diensten samen in één regel.
- Te veel opzoekingen: de regels
include,a,mx,ptr,existsenredirectkosten elk een DNS-opzoeking. Boven de tien geeft de controle een permanente fout (permerror). - Ontbrekende diensten: volgens Google hoort elke dienst die namens je domein mailt in het record. Mail van diensten die er niet in staan, belandt eerder in de spammap.
- Doorsturen: stuurt een tussenstation de mail door, dan komt die van een andere server en kan SPF mislukken. Volgens de RFC kan het tussenstation dat oplossen door de MAIL FROM naar het eigen domein te herschrijven.
Sinds 1 februari 2024 eist Google dat elke afzender naar Gmail-adressen SPF of DKIM instelt. Wie meer dan 5.000 berichten per dag stuurt, heeft SPF, DKIM en DMARC nodig.
Verwar een SPF-record niet met
- DKIM: een digitale handtekening in de mail zelf. SPF kijkt naar de server die verstuurt, DKIM naar het domein dat tekent.
- DMARC: een beleid bovenop SPF en DKIM. Elk domein, ook van een kwaadwillende, kan een eigen SPF-record publiceren en zo een pass halen. DMARC eist daarom dat het gecontroleerde domein past bij het From-adres.
- Het oude SPF-recordtype: tijdens de proeffase bestond er een apart DNS-type voor SPF. Dat is afgeschaft. Gebruik alleen een TXT-record.
Veelgestelde vragen over SPF-record
Waar staat SPF voor?
SPF staat voor Sender Policy Framework. Het is een standaard waarmee je in de DNS vastlegt welke servers namens je domein mogen mailen.
Wat is het verschil tussen ~all en -all?
Met -all zeg je dat andere servers geen toestemming hebben. Met ~all zeg je dat ze die waarschijnlijk niet hebben. Op een softfail alleen hoort een ontvanger de mail niet te weigeren.
Mag een domein twee SPF-records hebben?
Nee. Per domeinnaam mag er maar één SPF-record zijn. Gebruik je meer diensten, zet ze dan samen in één record.