Modul 4 · 4.2
SPF i praksis: få overblik over alle afsendere
Modul 4: Leveringsevne: SPF, DKIM og DMARC i praksis · Læsetid: 12 minutter
Læringsmål: Efter denne lektion kan du finde alle tjenester der sender mail på vegne af dit domæne, samle dem i ét SPF-record, tælle opslagene rekursivt op til grænsen på ti, og bevidst vælge mellem ~all og -all.
Nøglebegreber: oversigt over afsendere, envelope sender (Return-Path), ét SPF-record, include, redirect, grænse på 10 DNS-opslag (RFC 7208 afsnit 4.6.4), tomme opslag (void lookups, maks. 2), rekursiv optælling, permerror, flattening, SPF for underdomæner, SPF på et domæne der ikke sender mail, ~all og -all
Lige en opfriskning
Et SPF-record er et TXT-record på dit domæne der starter med v=spf1 og angiver hvilke servere der må sende mail på vegne af dit domæne. Opbygningen, tegnene + - ~ ? og de tre mest kendte fejl (to records, +all, mere end ti opslag) er beskrevet i DNS-kurset, lektion 4.3. Læs den først hvis SPF er nyt for dig. Denne lektion handler om den svære del: i praksis ved næsten ingen præcis hvem der sender mail på vegne af deres domæne.
Trin 1: oversigten
SPF virker kun hvis alle afsendere er med. Glemmer du en, havner den mail i spam eller bliver afvist, så snart du strammer op på DMARC. Gennemgå derfor denne liste. For en gennemsnitlig lille virksomhed finder du hurtigt fem eller seks:
| Type afsender | Eksempler | Hvordan finder du det ud? |
|---|---|---|
| Din almindelige mailboks | mailserveren hos dit hostingfirma, Microsoft 365, Google Workspace | Se hvor din MX peger hen, og hvor dit mailprogram sender via |
| Din hjemmeside | kontaktformular, password-mails, ordrebekræftelser fra en webshop | Spørg din webudvikler, se i indstillingerne for WordPress eller webshoppen |
| Nyhedsbrevstjeneste | Mailchimp, Brevo, Laposta, MailerLite | Se dine abonnementer efter |
| Bogføring og fakturaer | bogføringsprogrammet der sender fakturaer på dine vegne | Send dig selv en faktura og læs headerne |
| Anden software | CRM, aftaleplanlægger, helpdesk, spørgeskematool, betalingstjeneste | Spørg rundt på kontoret |
| Enheder | en printer eller scanner der scanner til mail, et kamera eller alarmsystem | Som regel via din almindelige mailserver; tjek det |
To gode måder at finde dem på:
- Læs headerne. Send en mail til dig selv fra hvert system (en faktura, en nulstilling af adgangskode, et testnyhedsbrev) og se i headerne efter
Return-PathogAuthentication-Results(lektion 1.5). Der kan du se hvilket domæne og hvilken server mailen kom fra. - DMARC-rapporter. Sæt DMARC til
p=nonemed en rapportadresse (lektion 4.4). Efter nogle uger kan du i rapporterne (lektion 4.5) se hver server der har sendt mail på vegne af dit domæne, også dem du havde glemt. Det er den mest pålidelige oversigt.
Ikke alle tjenester hører til i dit SPF
Her går det ofte galt. SPF kigger på envelope sender (Return-Path), ikke på Fra-adressen. Mange nyhedsbrevs- og udsendelsestjenester sender med et Return-Path på deres eget domæne, for eksempel bounce-123@mail.mailer.example. Modtageren kontrollerer så SPF-recordet for mailer.example, ikke dit eget. Et include af den tjeneste i dit record gør derfor ingenting, ud over at koste et opslag.
Det den tjeneste derimod har brug for for at komme igennem DMARC, er enten en DKIM-signatur med dit domæne (lektion 4.3), eller et eget Return-Path-underdomæne fra dig (for eksempel bounce.example.com som en CNAME til tjenesten). Læs derfor i tjenestens vejledning hvad den beder om. Står der "sæt include: i dit SPF", så gør det. Står der kun "opret disse CNAME-records til DKIM og bounce-domænet", skal der ikke ændres noget i dit hovedrecord. Modul 7 går mere i dybden med dette.
Trin 2: ét record, og tæl korrekt
Alle afsendere skal i ét record. Sig din oversigt giver dette resultat: mailserveren hos dit hostingfirma, Microsoft 365 til et par medarbejdere, dit bogføringsprogram og en helpdesk. Så bliver recordet for eksempel:
example.com. 3600 IN TXT "v=spf1 a mx include:spf.hosting.example include:spf.protection.outlook.com include:_spf.boekhoud.example include:mail.helpdesk.example ~all"Hvor mange opslag er det? Tæl hver a, mx, include, exists, ptr og redirect, og tæl derefter også alt hvad der står i recordsene bag hvert include:
| Del | Opslag | Forklaring |
|---|---|---|
a | 1 | A/AAAA-recordet for example.com |
mx | 1 | MX-recordene (adresserne på MX-værterne tæller ikke separat med i grænsen på ti, men der må højst være ti) |
include:spf.hosting.example | 1 + 0 | recordet der indeholder kun ip4: og ip6: |
include:spf.protection.outlook.com | 1 + 0 | samme (sådan stod det den 8. november 2026) |
include:_spf.boekhoud.example | 1 + 3 | dette record har selv tre includes, hver med kun IP-adresser |
include:mail.helpdesk.example | 1 + 2 | dette record har include: til to cloudtjenester |
| Total | 11 | en for meget |
Ved 11 giver modtageren en permerror: hele SPF-recordet tæller så ikke, for ingen afsendere overhovedet. Mailen fra din egen mailserver bliver altså bedømt dårligere fordi helpdesken koster tre opslag. Og det lumske er: dit record kan være 9 i dag og 11 i morgen, uden at du ændrer noget, fordi en tjeneste udvider sit eget record.
Derudover: maksimalt to tomme opslag
RFC 7208 nævner også void lookups: opslag der ikke giver noget resultat (navnet findes ikke, eller har ingen SPF- eller adresse-record). Mere end to af dem fører også til en permerror. Det sker især med gamle includes fra tjenester du ikke længere bruger, og som har fjernet deres record, eller med en a: til en server der ikke længere findes. Ryd altså op.
Trin 3: tilbage under ti
Ligger du over ti, er der fire løsninger, fra bedst til mindst god:
- Fjern det der ikke er nødvendigt. Tjenester du ikke længere bruger. Tjenester der sender med eget Return-Path (se ovenfor) og derfor ikke hører til i dit SPF.
ahvis din hjemmeside selv ikke sender mail.mxhvis din MX peger til en tjeneste der allerede står med etincludei dit record. - Brug et underdomæne. Lad en tjeneste sende fra
nieuws.example.comellerfactuur.example.com. Det underdomæne får sit eget SPF-record med kun den tjeneste, og tæller ikke med i de ti for dit hoveddomæne. Tilpasning (alignment) i DMARC (lektion 4.4) virker som standard også for underdomæner. - Brug
ip4:ogip6:til dine egne faste servere. Det koster ikke et opslag. Gør det kun for adresser du selv administrerer, og som ikke ændrer sig. - Flattening (alle includes erstattes med de IP-adresser der ligger bag dem lige nu). Det bringer antallet ned på 0, men recordet er ikke længere korrekt så snart en tjeneste ændrer sine adresser, og store tjenester gør det jævnligt. Gør det kun med et værktøj der automatisk holder det ajour, og helst slet ikke.
redirect eller include?
redirect= betyder: brug SPF-recordet fra det andet domæne i stedet for dette record. Det koster ét opslag, ligesom et include. Det er praktisk hvis du har mange domæner der skal have præcis samme politik: v=spf1 redirect=_spf.example.com på hvert domæne, og det egentlige record ét sted. Et record med redirect= må ikke have all, for så bliver redirecten ignoreret. Gmail bruger selv det: gmail.com har v=spf1 redirect=_spf.google.com.
Trin 4: ~all eller -all?
Anbefalingen fra dette kursus, samme som i DNS-kurset:
- Begynd med
~all(softfail). Mail fra en server der ikke står i dit record, bliver betragtet som mistænkelig, men som regel ikke straks afvist. Glemmer du en afsender, er skaden begrænset. - Gå til
-all(fail) når du er sikker på at alle afsendere er med, for eksempel efter du har gennemgået DMARC-rapporter i et par uger og der ikke længere er ukendte kilder.
Med DMARC ved siden af er forskellen mindre end mange tror. DMARC beslutter ud fra "SPF eller DKIM bestået og tilpasset (aligned)". En softfail er for DMARC bare "ikke bestået". Den reelle beskyttelse kommer altså fra en streng DMARC-politik, ikke fra -all. Nogle modtagere afviser allerede ved -all inden DMARC-vurderingen; det er en grund til kun at vælge -all når dit record virkelig er komplet.
Et domæne der aldrig sender mail
Har du domæner der aldrig sender mail (et gammelt brandnavn, et tastefejl-domæne)? Beskyt dem så mod misbrug med:
example.org. IN TXT "v=spf1 -all"
_dmarc.example.org. IN TXT "v=DMARC1; p=reject"
example.org. IN MX 0 .Her er -all straks rigtigt: der er ingen der må sende mail. Den sidste linje er en null MX (RFC 7505): "dette domæne modtager ikke mail". example.com selv er indstillet præcis sådan.
I praksis: sådan ser det ud i et panel
Ved en hostingpakke fra WebOké står der som standard v=spf1 a mx include:webawere.nl ~all. Tilføjer du en tjeneste, tilpasser du det record (i DirectAdmin: DNS Management, blyanten ved siden af SPF-recordet, feltet Inkluder domæne; i Mit WebOké: SPF-hjælpen under fanen DNS). Lad include:webawere.nl blive stående så længe din mail eller hjemmeside kører via de servere. Hos andre udbydere hedder standard-includen noget andet, men princippet er det samme: tilføj, opret ikke et andet record.
Opsummering
- Lav først en oversigt over alle afsendere; DMARC-rapporter og headere hjælper med det.
- En tjeneste med eget Return-Path hører ikke til i dit SPF; den har brug for DKIM med dit domæne.
- Tæl rekursivt: hvert
include,a,mx,exists,ptrogredirect, også inden i includes. Over ti, eller mere end to tomme opslag, giver permerror. - Kom tilbage under ti ved at rydde op og bruge underdomæner; flattening kun med automatisk vedligeholdelse.
- Begynd med
~all, gå til-allnår du er sikker. Domæner der aldrig sender mail:-all, DMARCrejectog null MX.
Quiz
Opgave
Opgave Z4.2: Få SPF for dit domæne talt rekursivt. Indtast dit eget domæne (eller sidn.nl hvis du ikke har et eget domæne). Tæl først selv hvor mange DNS-opslag SPF-recordet koster, inklusive alt inden i includes, og indtast tallet, sammen med slutningen af recordet (~all, -all, ?all eller +all). Programmet tæller efter i realtid, inklusive tomme opslag, og viser træet.
Opgave O4.2: Din afsenderoversigt. Lav med tabellen fra denne lektion en liste over alle systemer der sender mail på vegne af dit domæne. Notér for hvert: via hvilken server eller tjeneste, om det skal med i dit SPF (eget Return-Path eller ej), og om det signerer DKIM med dit domæne. Send en testmail til dig selv fra mindst to systemer og notér fra headerne Return-Path-domænet og DKIM-domænet (d=).
Opgave O4.2: Din afsenderoversigt
Denne opgave laver du selv; ingen tjekker den. Afkryds hvad du har gjort, og markér opgaven som udført.
Eksempel: hostingmailserver: SPF ja, DKIM ja. Microsoft 365: include plus to CNAME'er til DKIM. Nyhedsbrevstjeneste med egen Return-Path: ikke i SPF, men DKIM med eget domæne. Bogføringsprogram: ifølge tjenestens vejledning. En Return-Path eller d= er justeret, hvis organisationsdomænet er det samme som dit eget domæne.
Dine afkrydsninger og noter forbliver kun i denne browser; vi sender dem ingen steder hen. Er du logget ind, gemmer vi kun i Mine kurser, at du har udført opgaven.
Læs mere
Trinnene i disse artikler gælder for panelerne hos WebOké; hos andre udbydere fungerer det tilsvarende.
- Gratis DNS-kursus 4.3: SPF: hvem må sende mail på vegne af dit domæne?
- DirectAdmin vejledning 5.7: SPF opsætning og udvidelse
- Hvordan fungerer SPF-registreringen i DNS?
- Tilføj eller ret en SPF-record i DirectAdmin
- WebOké vejledning 5.5: DNS-hjælpere: MX, SPF, DMARC, CAA og SRV
- RFC 7208 (SPF), afsnit 4.6.4 (grænser) og 6.1 (redirect); RFC 7505 (null MX)
- Gmail og Outlook.com med dit eget domæne 2.4: SPF og DKIM, når du sender via Gmail
