Zum Inhalt springen

SPF-Prüfung

SPF-Record einer Domain holen, Syntax prüfen und die DNS-Lookups zählen

Beispiele

E-Mail-Adressen werden automatisch auf die Domain gekürzt.

Kurz erklärt
Der Abschluss zählt

SPF entscheidet nichts, es liefert nur ein Ergebnis: -all ergibt Fail, ~all Softfail, ?all Neutral und +all Pass für jeden Absender. Was der Empfänger daraus macht, ist seine Sache — in der Praxis wird Fail meist abgelehnt und Softfail markiert, verlassen kann man sich darauf aber nicht.

Zehn abfragende Terme, mehr nicht

Gezählt werden nicht die DNS-Pakete, sondern die Terme, die eine Abfrage auslösen: include, a, mx, ptr, exists und redirect — auch innerhalb eingebundener Records. Ein einzelner Term kann dabei mehrere Abfragen bedeuten (mx fragt erst die MX-Records ab und dann deren Adressen), und für a und mx gilt zusätzlich eine eigene Grenze von 10 Namen je Mechanismus. Wird die Zehnergrenze überschritten, ist das Ergebnis PermError — der Empfänger bekommt also kein Urteil über den Absender, sondern die Auskunft, dass dein Record nicht auswertbar ist.

Genau ein Record

Pro Domain darf es nur einen v=spf1-TXT-Eintrag geben. Bei zweien bricht die Auswertung mit PermError ab — die Records heben sich nicht gegenseitig auf, sie machen die Prüfung unmöglich.

Selbst nachprüfen

Dieselbe Prüfung kannst du im Terminal machen — unter Linux und macOS mit diesen Befehlen:

Den SPF-Record der Domain anzeigen.
dig +short TXT example.com | grep spf1
Ein eingebundenes include: auflösen — so zählst du die DNS-Lookups von Hand nach (Grenze: 10).
dig +short TXT _spf.google.com

Die Befehle sind bereits mit deiner Eingabe gefüllt. Weicht ein Ergebnis von dem hier ab: Deine Befehle fragen den Resolver deines Rechners, diese Seite fragt vom Server aus. Unterschiedliche Ergebnisse sind normal: Jeder Resolver hat einen eigenen Zwischenspeicher, und frische Änderungen brauchen bis zum Ablauf der TTL.