SPF PermError: Die vier Ursachen und wie du sie behebst

„SPF PermError“ heißt: Der SPF-Eintrag deiner Domain lässt sich nicht auswerten, und der Empfänger behandelt ihn als ungültig. Meist steckt einer von vier Fehlern dahinter, und alle lassen sich in wenigen Minuten beheben. So findest du den richtigen.

Was ein PermError ist

Bei jeder Mail fragt der Empfänger den SPF-Eintrag der Absenderdomain ab und prüft, ob der sendende Server erlaubt ist. Ist der Eintrag fehlerhaft, lautet das Ergebnis PermError („permanenter Fehler“). Es heißt nicht „abgelehnt“, aber SPF gilt dann als nicht bestanden. Mit einer strengen DMARC-Richtlinie führt das schnell zu abgelehnten Mails oder zum Spamordner, und große Anbieter wie Gmail und Yahoo erwarten SPF oder DKIM mit Alignment.

Ursache 1: mehr als 10 DNS-Abfragen

SPF erlaubt höchstens 10 Abfragen, die weitere DNS-Anfragen auslösen. Dazu zählen include, a, mx, exists, redirect und ptr. Nicht mitgezählt werden ip4, ip6 und all. Jedes include zählt dabei mit allen Abfragen, die der eingebundene Eintrag selbst enthält.

Typisch ist das bei vielen eingebundenen Diensten: Newsletter-Tool, Mailsystem, CRM, Ticketsystem, Buchhaltung. Jeder bringt ein include mit mehreren Abfragen.

So behebst du es:

Ursache 2: zwei SPF-Einträge

Eine Domain darf genau einen TXT-Eintrag haben, der mit v=spf1 beginnt. Zwei Einträge ergeben einen PermError, auch wenn jeder für sich korrekt ist. Das passiert oft, wenn ein neuer Dienst eingerichtet wird und seine Anleitung dazu rät, „einen SPF-Eintrag anzulegen“.

Lösung: Führe beide zu einem zusammen. Aus

v=spf1 include:_spf.google.com ~all
v=spf1 include:mailer.example.net ~all

wird

v=spf1 include:_spf.google.com include:mailer.example.net ~all

Der SPF-Generator setzt das in einem Schritt zusammen.

Ursache 3: Syntaxfehler

Ursache 4: Einträge, die nicht existieren

Verweist ein include auf eine Domain ohne SPF-Eintrag, ist das ein Fehler. Außerdem erlaubt SPF höchstens zwei „leere“ Abfragen, die gar kein Ergebnis liefern. Mehr als zwei führen ebenfalls zum PermError. Das trifft Einträge mit alten, abgeschalteten Diensten.

Lösung: Prüfe jedes include, ob der Verweis noch existiert, und entferne tote Einträge.

Fehler finden und prüfen

  1. Rufe den Eintrag mit dem SPF-Check ab. Er zeigt alle eingebundenen Einträge als Baum, zählt die Abfragen und markiert Syntaxfehler.
  2. Behebe den Fehler im DNS und warte die TTL ab, meist Minuten bis Stunden.
  3. Prüfe erneut und schicke dann eine Testmail, um das Ergebnis aus Sicht des Empfängers zu sehen: Der Test auf der Startseite zeigt SPF, DKIM und DMARC gemeinsam.

Häufige Fragen

Was ist der Unterschied zwischen PermError und TempError?

Ein TempError ist ein vorübergehendes Problem, zum Beispiel ein DNS-Server, der nicht antwortet. Ein PermError liegt am Eintrag selbst und verschwindet erst, wenn du ihn korrigierst.

Ist ~all oder -all besser?

Beide sind gültig. -all ist strenger („alles andere ablehnen“), ~all markiert nur als verdächtig. Mit DMARC-Richtlinie ist ~all meist ausreichend, weil DMARC die Entscheidung trifft.

Mein Eintrag hat nur drei include, trotzdem gibt es einen Fehler.

Die drei include können jeweils viele weitere Abfragen enthalten. Der SPF-Check zeigt die Summe.