Welche SPF-Lookups wirklich zählen (und welche nicht)

Veröffentlicht am 20. Oktober 2026 · 7 Min. Lesezeit · spFlat! Blog

Das 10-Lookup-Limit aus RFC 7208 ist das am häufigsten missverstandene Thema bei SPF. Fast alle zählen ihre include:-Anweisungen, sehen, dass sie unter 10 liegen, und gehen davon aus, dass alles in Ordnung ist.

Wahrscheinlich ist es das nicht. Das Limit zählt weit mehr als include:-Zeilen, und wer falsch zählt, verwandelt den SPF-Eintrag unbemerkt in einen PermError. Das ist nicht dasselbe wie SPF-Fail, aber viele Empfänger behandeln ihn so streng, dass die E-Mail-Zustellbarkeit leidet (manche verhalten sich praktisch so, als gäbe es keinen brauchbaren SPF-Eintrag).

Hier die genaue Aufschlüsselung: was zum 10-Lookup-Limit zählt und was nichts kostet.


Die Regel, die alle zitieren

"An SPF implementation MUST limit the total number of DNS lookups to 10."

Das steht in RFC 7208, Abschnitt 4.6.4. Das Wort, über das viele stolpern, ist total. Es sind nicht 10 include:-Direktiven, sondern 10 DNS-Lookups, und mehrere Dinge erzeugen mehr als einen.

Was zum Limit zählt

Jeder include:, plus das, was dahinter steckt

Jeder include: zählt als einer der 10, nämlich für den SPF-Eintrag der eingebundenen Domain selbst. Wenn dieser Eintrag weitere include:-, mx-, a-, ptr- oder exists-Terme nutzt, zählen auch diese, und sie verstecken sich meist über mehrere Ebenen.

Die Zahlen der Anbieter ändern sich. include:spf.protection.outlook.com ist derzeit eine flache ip4:/ip6:-Liste (1 Lookup). SendGrid und Mailgun verschachteln weiterhin. Prüfen Sie die aktuelle Kette, statt sich auf eine Tabelle aus einem Blogartikel zu verlassen.

Der mx-Mechanismus (ein Term, nicht einer pro MX-Host)

mx zählt als genau ein Term zum 10-Term-Limit, auch wenn die Domain mehrere MX-Hosts veröffentlicht. Der Empfänger muss trotzdem die A/AAAA-Einträge dieser Hosts auflösen (zusätzliche DNS-Arbeit), aber diese Adress-Lookups unterliegen einem separaten Limit aus RFC 7208: höchstens 10 Adress-Einträge pro mx-Auswertung. Sie verbrauchen nicht jeweils einen weiteren der 10 Plätze. Das Gegenteil ist ein verbreiteter Irrtum, der zu falschen Zählungen führt.

Der a-Mechanismus

a zählt als ein Term. Ein Adress-Lookup kann mehrere A/AAAA-Einträge zurückgeben; mehrere Adressen in dieser Antwort multiplizieren den Zähler nicht. Dasselbe gilt für ptr und exists: Jeder ausgewertete Term zählt einmal, mit eigenen zusätzlichen Verarbeitungsregeln im RFC.

redirect (dasselbe Limit wie include)

Ein redirect=-Modifier wird gegen dasselbe 10-Term-Limit ausgewertet, nicht gegen ein neues. Ein Redirect, der selbst Includes nutzt, verbraucht Ihr Lookup-Budget genauso wie ein Include.

Was NICHT zählt

ip4:- und ip6:-Mechanismen: immer kostenlos

Direkte IP-Mechanismen sind nie DNS-Lookups. Darauf beruht SPF-Flattening: Lookup-intensive include:-Ketten durch flache ip4:/ip6:-Listen ersetzen, und Ihr Eintrag kommt insgesamt mit 1 Lookup aus.

Ein include:, dessen Domain keinen SPF-Eintrag hat

Wenn die eingebundene Domain keinen SPF-Eintrag veröffentlicht, kostet der include: trotzdem einen Ihrer 10 Lookups, nämlich den, der das leere Ergebnis festgestellt hat. Eine Ausnahme gibt es nicht. Leere oder NXDOMAIN-Antworten speisen außerdem das separate Void-Lookup-Limit (Implementierungen SOLLEN nach zwei abbrechen), sodass fehlerhafte Includes einen Fehlschlag auslösen können, bevor Sie 10 Terme erreichen.

exp: der Erklärungs-Modifier

exp= verweist auf einen Makro-String in einem TXT-Eintrag, der erst nach einem Fail-Ergebnis nachgeschlagen wird. Er zählt während der Auswertung nicht zum 10-Term-Limit. Dasselbe gilt für all.

Der versteckte Stolperstein: verschachtelte Includes

Das Unangenehme: Anbieter verschachteln Includes. Ein „einfacher“ Eintrag wie dieser:

v=spf1 include:spf.protection.outlook.com include:sendgrid.net include:mailgun.org ~all

sieht nach 3 Lookups aus, verbraucht derzeit aber etwa 8, sobald die Ketten aufgelöst sind: Outlook ist flach (1), SendGrid bindet ab.sendgrid.net ein (2), und Mailgun fächert über US- und EU-SPF-Bäume auf (5). Fügen Sie ein mx oder einen weiteren Anbieter-Include hinzu, und Sie stehen unbemerkt am Limit.

Zählen Sie den Baum, nicht die Token. Die Zahl der include:-Zeilen in Ihrem TXT-Eintrag ist fast nie die Zahl, die ein Empfänger auswertet.

Der praktische Weg zur Prüfung

Per Augenmaß lässt sich das nicht zuverlässig zählen. Die korrekte Zahl ist die ausgewertete DNS-Lookup-Anzahl, und dafür brauchen Sie ein Tool, das die volle Kette durchläuft.

Nutzen Sie das kostenlose Lookup-Tool auf spflat.cloud: Geben Sie Ihre Domain ein, und das Tool meldet die echte Lookup-Anzahl, ob Sie am oder über dem 10-Lookup-Limit liegen und ob gerade ein PermError auftritt. Kein Konto nötig.

Wenn „unter 10“ nicht reicht

Selbst bei 8 oder 9 Lookups sind Sie eine Anbieter-Änderung von einem PermError entfernt. E-Mail-Anbieter fügen routinemäßig CIDR-Bereiche hinzu oder entfernen sie; sobald ein verschachtelter Include um eine Ebene wächst, kippt Ihr Eintrag in permerror und Empfänger behandeln ihn als fehlend.

Deshalb ist korrektes Zählen wichtig. Und deshalb ist automatisches Flattening (das die ganze Kette in direkte IPs auflöst und sie aktualisiert, wenn Anbieter-Bereiche sich ändern) der einzige Weg ist, langfristig gut unter dem Limit zu bleiben, ohne ständig nachzupflegen.

Wichtigste Erkenntnisse

  • Zählen Sie die ausgewerteten Lookups, nicht Ihre include:-Zeilen.
  • mx und a kosten Lookups; ip4:/ip6: kosten nichts.
  • Verschachtelte Includes verstecken die echte Zahl.
  • Prüfen Sie die tatsächliche Anzahl mit einem Tool, nicht mit Kopfrechnen.

Prüfen Sie Ihre echte SPF-Lookup-Anzahl

Kostenlos, ohne Anmeldung. Sehen Sie die ausgewertete DNS-Lookup-Anzahl (inklusive verschachtelter Includes) und ob Sie am oder über dem 10-Lookup-Limit liegen.

Prüfen Sie Ihren SPF-Eintrag
Oder starten Sie Ihre kostenlose 14-Tage-Testversion →

Häufig gestellte Fragen

Was zählt zum SPF-Limit von 10 DNS-Lookups?

RFC 7208 begrenzt die Zahl der Terme, die DNS-Lookups auslösen, auf 10, nicht die Zahl der include:-Zeilen. Jeder ausgewertete include:-, a-, mx-, ptr-, exists- und redirect=-Term zählt einmal, und verschachtelte Includes zählen ebenfalls. Direkte ip4:- und ip6:-Mechanismen, all und der Modifier exp zählen nicht zu diesem Limit.

Zählt der mx-Mechanismus als ein SPF-Lookup?

Ja. Der mx-Mechanismus zählt genau einmal zum 10-Term-Limit, auch wenn die Domain mehrere MX-Hosts hat. Das Auflösen der A/AAAA-Einträge dieser Hosts erzeugt zusätzliche DNS-Lookups unter einem separaten RFC-Limit (höchstens 10 Adress-Einträge pro mx-Auswertung), verbraucht aber nicht jeweils einen weiteren der 10 Plätze.

Wie prüfe ich meine echte SPF-Lookup-Anzahl?

Nutzen Sie das kostenlose Lookup-Tool auf spflat.cloud. Geben Sie Ihre Domain ein. Das Tool meldet die ausgewertete DNS-Lookup-Anzahl, ob Sie am oder über dem 10-Lookup-Limit liegen und ob ein PermError auftritt.

Zählt das Abrufen meines eigenen SPF-TXT-Eintrags zu den 10?

Nein. Der erste DNS-Lookup, der den SPF-TXT-Eintrag Ihrer Domain abruft, zählt nicht zum 10-Term-Limit von RFC 7208. Das Zählen beginnt bei den Mechanismen und Modifiern in diesem Eintrag (und bei allen verschachtelten Includes, die sie auslösen).