Let op! Deze informatie is bedoeld voor de meer technisch gevorderde lezer. Byte kan hierbij geen technische support leveren. Ben je zelf niet zo technisch? Neem dan contact op met één van onze partners, te vinden op onze Partnerpagina.

SPF staat voor Sender Policy Framework en is een protocol waarmee vastgesteld wordt of de verzender van een mailserver wel gemachtigd is om een bericht te verzenden. Het voornaamste doel van SPF records is om spam te voorkomen.

Dit artikel legt uit wat SPF records precies doen, hoe ze zijn opgebouwd en hoe Byte ze heeft geïmplementeerd in de DNS.

Hoe werkt een SPF record?

SPF is een protocol waarmee vastgesteld wordt of de verzender van een mailserver wel gemachtigd is om een bericht te verzenden. Fraude met e-mail, door de identiteit van de verzender van een e-mailtje te wijzigen (zie ook Mail Fake Afzender), komt veel voor en SPF gaat dit tegen met behulp van een controle in het DNS systeem. Dit betekent dat mailserver A, die mail ontvangt van henk@abcd.nl van mailserver B, kan controleren of mailserver B inderdaad geautoriseerd is om namens het domein van abcd.nl e-mail te versturen.

Binnen het SPF protocol wordt aan het DNS record extra informatie toegevoegd, zodat het duidelijk is welke mailservers namens dit domein e-mail mogen verzenden. Staat een mailserver niet in deze opsomming en verzendt deze toch e-mail met het betreffende domein als afzender? Dan wordt de e-mail als onrechtmatig beschouwd en wordt deze niet bezorgd.

De opbouw van een SPF record

Een SPF record begint altijd met een “v=” gedeelte. Hiermee wordt aangegeven dat de content in het TXT record een SPF record is en geeft het ook aan welke versie van het SPF protocol (bijvoorbeeld v=spf1) je gebruikt. Dit gedeelte is essentieel voor de werking van het SPF record, want anders wordt het gehele record genegeerd door de SPF-clients.

Daarna wordt er aan de hand van mechanismes en qualifiers aangegeven wanneer een domein überhaupt e-mail mag versturen. In de mechanismes geef je aan welke uitgaande mailservers als betrouwbaar worden beschouwd. De qualifiers geven aan wat er met de betreffende e-mails gebeurt (wel of niet doorlaten). Hieronder worden deze verder uitgelegd:

Mechanismes

all Hiermee geef je alle uitgaande mailservers aan
a Als het IP adres waar de verzender vandaan mailt gelijk is aan het IP adres (A record) van het domein, dan wordt de mail toegelaten.
ip4 Als de verzender zich in de IP4 IP range bevindt, wordt de mail toegelaten. Voeg het IP adres toe na ‘’ip4’’ om het IP adres te whitelisten.
ip6 Als de verzender zich in de IP6 IP range bevindt, wordt de mail toegelaten. Voeg het IP adres toe na ‘’ip6’’ om het IP adres te whitelisten.
mx Wanneer de mail verstuurd wordt vanuit het MX record van het domein, dan wordt de mail toegelaten.
exists Wanneer het domein gekoppeld staat aan een IP adres, dan wordt de mail toegelaten.
include Als aan de voorwaarden in het record (dat geïnclude wordt) voldaan is, dan wordt de mail toegelaten.

Qualifiers

Elk mechanisme kan je combineren met een van de vier onderstaande qualifiers:

  • + geeft een PASS resultaat. De mail wordt altijd doorgelaten.
  • ? geeft een NEUTRAL resultaat. Mail wordt doorgelaten, omdat er geen mening gegeven wordt over de e-mail (no policy).
  • ~ voor een SOFTFAIL resultaat. Mail wordt dan wel toegelaten maar kan als spam beschouwd worden en in de spamfolder terecht komen.
  • voor een FAIL resultaat. De mail wordt dan NIET geaccepteerd door de ontvangende mailserver.

SPF records bij Byte

Byte heeft voor alle bij ons gehoste domeinen SPF records toegevoegd in de DNS. Aangezien de mail niet exclusief via onze servers wordt verstuurd, maken we gebruik van het “?all” mechanisme. Dit betekent dat mail dat niet via het Byte platform verzonden is, als neutraal zal worden verwerkt door SPF-geschikte mailservers en mail dat wel via Byte verzonden is  wordt geaccepteerd. Het SPF record is als volgt opgebouwd: v=spf1 include:spf.byte.nl.
Hiermee geven we aan dat de versie spf1 is en de informatie uit spf.byte.nl gehaald wordt. Het record spf.byte.nl is als volgt opgemaakt:

v=spf1 ip4:82.94.214.0/24 ip4:46.21.235.240/28 ~all

In dit record wordt aangeven welke versie het betreft. Er staan twee IP4 ranges in waarmee het mogelijk is om met de uitgaande mailservers van segment 1 en 2 e-mail te versturen.

Het gedeelte ~all geeft aan dat wanneer je vanuit een ander IP adres mail stuurt, er niet gekeken wordt of het klopt; het wordt gewoon door gelaten. Bij ons record zijn dan ook de IP adressen van onze mailservers “gewhitelist” (gemarkeerd als betrouwbare mailserver) en wordt de rest van de e-mails door externe mailservers ook doorgelaten.

De reden dat bij ons SPF records zo zijn opgebouwd, is dat als wij een wijziging moeten maken aan de SPF records, wij dit maar op 1 plek hoeven aan te passen; spf.byte.nl . Vanwege de include zullen de wijzigingen aan spf.byte.nl op alle domeinen opgepikt worden.

Hoe voeg je een eigen mailserver toe aan je SPF record?

Gebruik je een eigen mailserver en wil je dat deze mailserver ook e-mail mag verstuurt vanaf jouw domein? Whitelist dan jouw mailserver door het IP adres van deze server toe te voegen aan het SPF record.
Als voorbeeld nemen we het IP adres 82.94.214.5 . Als je deze wilt toevoegen aan je SPF record, gaat het SPF record er als volgt uitzien:

v=spf1 include:spf.byte.nl ip4:82.94.214.5

Je kunt dan behalve met onze mailservers ook met je eigen mailserver mailen vanaf jouw domein.

Hoe kan je meerdere mailservers toevoegen aan je SPF record?

Als je met meerdere maildiensten wilt mailen namens je domein, moet je elke specifieke maildienst opnemen in je SPF record. Deze maildiensten kun je allemaal met include toevoegen aan je SPF record. In het onderstaande voorbeeld hebben we zowel de mailservers van Byte als de mailservers van Google toegevoegd aan het record:

v=spf1 include:spf.byte.nl include:_spf.google.com ~all

SPF-records bij Hypernode

Wanneer je een Magento pakket (Hypernode) bij ons hebt is het van belang dat je ook de mailserver van je Hypernode en onze mailservers autoriseert in je SPF-record. Je voegt hiervoor het onderstaande gedeelte toe aan je SPF-record:

include:spf.appname.hypernode.io

Hierbij pas je het gedeelte appname aan naar de naam van je Hypernode pakket.

Let op! Wanneer je dit ook gebruikt, kun je het gedeelte include:spf.byte.nl achterwege laten. Dit is namelijk een onderdeel van spf.appname.hypernode.io

516