Så fungerar SPF-kontrollen
Den läser TXT-posterna för domänen du anger och väljer ut den som börjar med v=spf1. Sedan följer den varje include och redirect på samma sätt som en mottagande server, registrerar varje uppslag som kräver en DNS-fråga och kontrollerar syntaxen för varje term.
Ingen IP-adress är inblandad. Frågan här är om posten är giltig och rimlig att utvärdera för alla som behöver göra det, inte om en viss server får skicka. För att kontrollera det skickar du ett meddelande genom det fullständiga testet. Rapporten visar då resultatet som mottagaren faktiskt fick.
För många DNS-uppslag: gränsen är tio
RFC 7208 begränsar en SPF-utvärdering till tio termer som kräver en DNS-fråga: include, a, mx, ptr, exists och redirect. Antalet räknas över hela trädet, så en include som i sin tur innehåller tre ytterligare include använder fyra av dem. Om gränsen överskrids blir resultatet permerror, vilket DMARC räknar som att SPF inte godkänns.
Kontrollen räknar varje term, även dem som utvärderingen kanske aldrig når, eftersom en verklig utvärdering stannar vid den första matchningen. Servrar som anges tidigt fortsätter att godkännas, medan de längre ned börjar underkännas. Utifrån ser det ut som att e-posten fungerar för vissa meddelanden men inte för andra.
Termerna ip4 och ip6 kostar ingenting. Genom att ersätta include med adressintervall, så kallad utplattning, minskar antalet uppslag. Nackdelen är att du manuellt måste hålla intervallen synkroniserade med dina leverantörer.
Vanliga SPF-fel att leta efter
Två SPF-poster på samma domän. Det händer när installationsguiden för en andra leverantör säger att en post ska läggas till och ingen slår ihop den med den första. Två poster ger i sig ett permerror.
Ett avslutande +all, som gör att alla servrar på internet godkänns, eller ?all, som inte säger något om någon och därför inte ger något skydd. En ptr-term, som RFC 7208 avråder från att använda. Include för tjänster som företaget slutade använda för flera år sedan kostar fortfarande ett uppslag vardera.
Frågor
Hur ser en SPF-post ut?
Det är en TXT-post på domänen som börjar med v=spf1, anger vilka som får skicka och avslutas med en regel för alla andra. v=spf1 include:_spf.google.com ip4:203.0.113.5 ~all låter Google Workspace och en server skicka och ger softfail för resten. En domän får bara publicera en.
SPF softfail eller hardfail: ~all eller -all?
När DMARC väl är på plats fungerar båda, eftersom DMARC avgör vad som händer med ett meddelande som underkänns. ~all (softfail) är det säkrare valet medan du fortfarande kartlägger alla tjänster som skickar åt dig. Byt till -all när DMARC-rapporterna visar att inget legitimt underkänns.
Varför godkänns min post i det fullständiga testet men visar fler än tio uppslagningar här?
Mottagaren slutade utvärdera vid den första termen som matchade din server och behövde därför aldrig göra resten av uppslagningarna. En annan server längre ned i listan skulle få samma utvärdering att överskrida tio uppslagningar och misslyckas.
Vad är en tom uppslagning?
En DNS-fråga som inte returnerar några poster eller gäller ett namn som inte finns. RFC 7208 tillåter två sådana i en utvärdering. En tredje ger permerror. include för domäner som inte längre finns är den vanligaste orsaken.
Kan en domän ha två SPF-poster?
Nej. RFC 7208 tillåter en post som börjar med v=spf1. Med två sådana slutar varje utvärdering i permerror. Slå ihop dem: behåll ett enda v=spf1, lägg in include- och ip4-villkoren från båda och avsluta med ett enda all. v=spf1 include:_spf.google.com include:servers.mcsv.net ~all omfattar två leverantörer i en post.
Fullständig guide: Multiple SPF records
Vad betyder SPF permerror?
Permanent fel: posten kan inte utvärderas som den är publicerad, så ett nytt försök ger samma resultat. De vanligaste orsakerna är fler än tio DNS-uppslag, två SPF-poster på samma domän, ett syntaxfel och ett tredje tomt uppslag. DMARC räknar permerror som att SPF inte godkänns.
Fullständig guide: SPF permerror: too many DNS lookups
Vad händer om ingen SPF-post hittas?
Mottagare får resultatet none, vilket DMARC behandlar på samma sätt som fail, och vem som helst kan ange din domän som kuvertavsändare. Publicera en TXT-post på själva domänen som börjar med v=spf1, listar tjänsterna som skickar åt dig och slutar med ~all eller -all.