Ein SPF-Eintrag (Sender Policy Framework), der „too many DNS lookups“ meldet, hat die in RFC 7208 festgelegte Obergrenze von 10 Lookups überschritten. Empfangende Mailserver behandeln dann den gesamten Eintrag als fehlerhaft, nicht nur den Teil über dem Limit. Die Lösung: Du flattenst deine include:-Mechanismen oder fasst sie zusammen, sodass die Gesamtzahl der Lookups wieder unter 10 sinkt, ohne dass dabei unbemerkt eine Versandquelle wegfällt.
Warum es das SPF-Limit von 10 Lookups gibt
RFC 7208 §4.6.4 begrenzt die SPF-Auswertung auf 10 DNS-Lookups pro Prüfung, und jeder Eintrag, der mehr benötigt, muss einen permerror zurückgeben. Das ist keine harmlose Warnung: Ein permerror bedeutet, dass das empfangende System deine Richtlinie nicht zuverlässig bestimmen kann. Es greift deshalb auf lokale Regeln zurück, was oft dazu führt, dass die Nachricht im Spam landet oder direkt abgelehnt wird.
Folgende Mechanismen und Modifier zählen zum Budget von 10 Lookups:
includeamxptrexistsredirect
Mechanismen, die nicht zählen, weil sie ohne DNS-Abfrage aufgelöst werden:
ip4ip6all
Genau auf diesem Unterschied basiert das „Flattening“: Du ersetzt lookup-basierte Mechanismen durch die IP-Bereiche, in die sie letztlich aufgelöst würden. So sinkt die Zahl der Lookups, ohne dass sich ändert, was tatsächlich autorisiert ist.
Warum SPF-Einträge das Limit so leicht überschreiten
Die meisten Domains landen nicht hier, weil jemand absichtlich zehn Versanddienste hinzugefügt hat. Schon eine Handvoll gängiger Integrationen reicht aus:
- Google Workspace oder Microsoft 365 für die primären E-Mails
- Ein Helpdesk-Tool (Zendesk, Freshdesk) für Support-Antworten
- Eine Marketing-Plattform (Mailchimp, HubSpot) für Kampagnen
- Ein Transaktions-Dienst (SendGrid, Mailgun, Postmark) für App-E-Mails
- Ein CRM- oder E-Signatur-Tool, das ebenfalls in deinem Namen sendet
Jeder dieser Dienste wird normalerweise mit einem include: eingetragen, doch viele große Anbieter verschachteln ihre eigenen Includes über mehrere Ebenen. Drei oder vier beliebte Dienste können so schnell allein 8–10 Lookups verursachen, vor allem wenn man verschachtelte include-Ketten und eventuelle mx- oder a-Mechanismen mitzählt.
WarningEin Eintrag kann im Texteditor völlig in Ordnung aussehen und im Live-Betrieb trotzdem scheitern, denn die 10-Lookup-Zählung umfasst jedes verschachtelte
include, rekursiv aufgelöst, und nicht nur die, die in deinem eigenen TXT-Eintrag sichtbar sind.
Zusätzlich gibt es ein separates Void-Lookup-Limit von 2: Ein Void Lookup ist jede Abfrage, die NXDOMAIN oder keine Antwort zurückgibt. Veraltete oder falsch geschriebene include:-Ziele eines Dienstes, den du nicht mehr nutzt, können dieses Limit auslösen, selbst wenn deine sichtbare Lookup-Zahl unter 10 liegt.
So prüfst du die Anzahl deiner SPF-Lookups
Ruf zunächst den Roh-Eintrag ab und geh jedes include: von Hand durch, oder prüfe ihn mit unserem kostenlosen SPF-Generator, der einen Eintrag validiert und Mechanismen markiert, die ihn über das Limit bringen. Mit unserem DNS-Lookup-Tool kannst du außerdem das zugrunde liegende DNS untersuchen und genau sehen, worauf jedes include: auflöst, bevor du entscheidest, was du flattenst.
Ein Eintrag, der auf Probleme zusteuert, sieht oft so aus:
v=spf1 include:_spf.google.com include:spf.protection.outlook.com include:servers.mcsv.net include:sendgrid.net include:mailgun.org include:helpscoutemail.com ~all
Sechs include:-Mechanismen, von denen jeder potenziell weitere darunter verschachtelt: So überschreitet man mit nur einer Handvoll Dienste ganz realistisch die 10 Lookups.
SPF-Flattening: Includes durch IP-Bereiche ersetzen
Flattening bedeutet, jedes include: bis auf die ip4-/ip6-Bereiche aufzulösen, auf die es aktuell verweist, und diese dann mit ip4:-/ip6:-Mechanismen statt include: fest in deinen Eintrag zu schreiben. Da IP-Mechanismen kostenlos sind (sie zählen nicht zum Limit), kann ein Eintrag mit einem Dutzend IP-Bereichen problemlos unter 10 Lookups bleiben.
v=spf1 ip4:198.51.100.0/24 ip4:203.0.113.10 ip6:2001:db8::/32 include:_spf.google.com ~all
Hier werden die weniger wichtigen Absender zu IPs geflattet, und nur der Anbieter mit den häufigsten Änderungen (in diesem Beispiel Google) bleibt als aktives include: erhalten. Denn Anbieter wechseln ihre Versand-IP-Bereiche, und ein vollständig geflatteter Eintrag muss bei jeder Änderung manuell gepflegt werden.
TipFlatte die Anbieter, die ihre IP-Bereiche selten ändern, und belasse die, die häufig wechseln (große ESPs, Cloud-Mail-Plattformen), als
include:-Mechanismen. So findest du ein Gleichgewicht zwischen Lookup-Anzahl und Pflegeaufwand.
SPF-Einträge zusammenfassen statt flatten
Wenn dir Flattening für dein Team zu fehleranfällig in der Pflege erscheint, fasse zuerst zusammen:
- Entferne
include:-Einträge für Dienste, über die du nicht mehr versendest. - Führe doppelte Mechanismen zusammen: Zwei
include:-Anweisungen, die auf denselben zugrunde liegenden Anbieter verweisen, summieren sich schnell. - Prüfe, ob ein Dienst ein einzelnes, schlankeres SPF-Include anbietet statt des Standard-Includes, das nicht benötigte Infrastruktur mit einbindet.
- Stell sicher, dass es auf der Domain nicht mehr als einen SPF-TXT-Eintrag gibt: RFC 7208 §3.2 verlangt genau einen, und zwei Einträge verursachen ebenfalls einen permerror, unabhängig von der Lookup-Anzahl.
Ein redirect-Modifier kann einen gesamten Eintrag durch die Richtlinie einer anderen Domain ersetzen, doch laut RFC 7208 §6.1 sollte er nur verwendet werden, wenn in diesem Eintrag keine anderen Mechanismen vorhanden sind. Wer redirect mit eigenen include:-/all-Mechanismen mischt, erhält eine unvorhersehbare Auswertung.
Was passiert, wenn du das Problem ignorierst
Ein permerror ist nicht neutral: Die meisten Empfänger wenden zusätzlich ihre lokale Richtlinie an. Und da das DMARC-Alignment davon abhängt, dass SPF besteht, bricht ein fehlerhafter SPF-Eintrag häufig auch das DMARC-Alignment, selbst wenn DKIM weiterhin gültig ist. Diese Kombination ist eine häufige, unauffällige Ursache dafür, dass E-Mails im Spam landen. Wenn du die Zustellbarkeit umfassender untersuchst, findest du unter warum deine E-Mails im Spam landen das Gesamtbild über SPF hinaus.
Kurzübersicht: Was zum SPF-Lookup-Limit zählt
| Mechanismus/Modifier | Zählt zum 10-Lookup-Limit? |
|---|---|
include |
Ja |
a |
Ja |
mx |
Ja (max. die ersten 10 MX-Einträge werden verwendet) |
ptr |
Ja (veraltet, vermeiden) |
exists |
Ja |
redirect |
Ja |
ip4 / ip6 |
Nein |
all |
Nein |
Behalte deinen Eintrag auch nach der Korrektur im Blick: SPF-Wildwuchs schleicht sich jedes Mal wieder ein, wenn ein Team ein neues Versand-Tool hinzufügt, ohne das bestehende Budget zu prüfen. Wenn du DNS über mehrere Registrare und Anbieter hinweg verwaltest, bieten dir unsere DNS-Verwaltungs-Tools einen zentralen Ort, an dem du jeden Eintrag sehen und bearbeiten kannst, bevor er unbemerkt die Mailzustellung lahmlegt.
Häufig gestellte Fragen
#Was genau zählt als ein SPF-DNS-Lookup?
Jeder include-, a-, mx-, ptr-, exists- und redirect-Mechanismus zählt als ein Lookup, und darin verschachtelte Includes zählen ebenfalls zur selben Gesamtzahl. ip4, ip6 und all benötigen keine DNS-Abfrage und sind daher kostenlos.
#Blockiert das Überschreiten des SPF-Lookup-Limits alle meine E-Mails?
Es verursacht einen permerror, den die meisten empfangenden Mailsysteme als fehlgeschlagene oder unbrauchbare SPF-Prüfung statt als neutrales Ergebnis behandeln. Das führt oft dazu, dass Nachrichten abgelehnt werden oder im Spam landen, und kann außerdem das DMARC-Alignment über SPF brechen.
#Kann ich einfach zwei SPF-Einträge anlegen, um mehr Absender unterzubringen?
Nein. RFC 7208 verlangt genau einen SPF-TXT-Eintrag pro Domain, und mehr als einer erzeugt ebenfalls einen permerror, unabhängig vom Problem mit der Lookup-Anzahl.
#Wie oft müssen geflattete IP-Bereiche aktualisiert werden?
Das hängt vom Anbieter ab: Manche ändern ihre Versand-IP-Bereiche selten, andere wechseln sie regelmäßig. Geflattete Einträge müssen daher regelmäßig mit den aktuell veröffentlichten Bereichen des Anbieters abgeglichen werden, damit keine legitimen Absender verloren gehen.
Mit einem kostenlosen Tool ausprobieren
War dieser Artikel hilfreich?