Einen SPF-Eintrag zu validieren bedeutet, ihn gegen die Regeln zu prüfen, die empfangende Mailserver tatsächlich durchsetzen - die Sender-Policy-Framework-Spezifikation (RFC 7208). Ein Eintrag kann korrekt aussehen und dennoch abgelehnt werden, hier ist also, was "gültig" bedeutet und wie Sie die Fehler beheben, die dieser Validator findet.
Was "gültig" unter RFC 7208 bedeutet
Ein gültiger SPF-Eintrag erfüllt jede einzelne dieser Bedingungen gleichzeitig: Er ist der einzige v=spf1-TXT-Eintrag auf der Domain, er beginnt mit dem v=spf1-Tag, er verwendet nur anerkannte Mechanismen und Qualifizierer, er löst in zehn oder weniger DNS-Lookups auf, er erzeugt nicht mehr als zwei void Lookups, und er endet mit einem all-Qualifizierer. Verfehlen Sie einen davon, geben Empfänger möglicherweise einen PermError zurück und behandeln den Eintrag, als wäre er nie veröffentlicht worden.
Syntaxregeln, die der Validator durchsetzt
- Nur ein Eintrag. RFC 7208 erlaubt genau einen
v=spf1-Eintrag pro Domain. Ein zweiter ist ein automatischer PermError - beide werden ignoriert. - Korrekte Reihenfolge. Das
v=spf1-Versions-Tag muss zuerst kommen und derall-Mechanismus zuletzt. - Nur gültige Mechanismen und Qualifizierer. Erlaubte Mechanismen sind
include,a,mx,ip4,ip6,existsundall; jeder kann einen+-,--,~- oder?-Qualifizierer tragen. Tippfehler wieip:oderincludes:scheitern. - Zeichenkettenlänge. Jede einzelne Zeichenkette im TXT-Eintrag muss innerhalb von 255 Zeichen bleiben und der gesamte Eintrag innerhalb von 512 Byte, sonst kürzt das DNS ihn.
Das 10-Lookup- und das 2-void-Lookup-Limit
Zwei numerische Grenzen fangen die meisten "gültige Syntax, scheitert trotzdem"-Einträge ab. Die erste ist die bekannte Obergrenze von zehn DNS-abfragenden Mechanismen pro Auswertung - jedes include, a, mx, ptr und exists zählt, und verschachtelte Includes zählen rekursiv. Die zweite, weniger bekannte Grenze sind void Lookups: Nicht mehr als zwei Mechanismen dürfen zu einer leeren DNS-Antwort auflösen. Überschreiten Sie eine davon, ist das Ergebnis ein PermError. Wenn Ihr Eintrag über dem Zehn-Lookup-Limit liegt, flacht AutoSPF die Includes zu einem kompakten Eintrag ab, der sauber validiert, und scannt alle 15 Minuten neu - siehe zu viele DNS-Lookups für die Details.
Veraltete und riskante Mechanismen
Der Validator warnt vor zwei Dingen, die technisch parsbar sind, aber vermieden werden sollten. Der ptr-Mechanismus ist durch RFC 7208 (§5.5) veraltet, weil er langsam und unzuverlässig ist - ersetzen Sie ihn durch ip4/ip6 oder ein include. Und +all autorisiert das gesamte Internet, als Ihre Domain zu senden, was den Zweck von SPF vollständig zunichtemacht; ein gültiger Eintrag sollte mit -all oder ~all enden.
So beheben Sie einen ungültigen SPF-Eintrag
Die meisten Validierungsfehler entsprechen einer von vier Behebungen - und unser Leitfaden zum Beheben der SPF-Validierung behandelt jede im Detail:
- Zwei SPF-Einträge? Führen Sie jeden Absender in einen einzigen
v=spf1-Eintrag zusammen. - Über 10 Lookups? Ersetzen Sie lookup-lastige Includes durch
ip4/ip6-Einträge oder flachen Sie den Eintrag automatisch mit AutoSPF ab. - Veraltetes
ptr? Entfernen Sie es und autorisieren Sie diese Hosts stattdessen per IP oder include. - Fehlender oder falscher Qualifizierer? Stellen Sie sicher, dass der Eintrag mit
v=spf1beginnt und mit-all(oder~allwährend des Tests) endet.
Von Grund auf neu aufzubauen ist oft einfacher als zu flicken - der kostenlose SPF-Eintrag-Generator erzeugt einen syntaktisch sauberen Eintrag, den Sie hier in einem Schritt validieren können.
Wo SPF neben DKIM und DMARC steht
Ein gültiger SPF-Eintrag ist notwendig, aber nicht ausreichend. DKIM signiert den Nachrichtentext und DMARC bindet SPF und DKIM an die sichtbare From-Domain und legt die Durchsetzungsrichtlinie fest. Nachdem Sie Ihren SPF-Eintrag geprüft haben und er validiert, bestätigen Sie die anderen beiden mit dem kostenlosen DMARC-Checker und dem DKIM-Lookup. Validieren Sie SPF jedes Mal erneut, wenn Sie einen Sendedienst hinzufügen oder entfernen, und prüfen Sie es mindestens einmal pro Quartal - und denken Sie daran, dass jede sendende Subdomain ihren eigenen gültigen Eintrag braucht.