Kurz erklärt
SPF steht für Sender Policy Framework. In einem TXT-Record auf deiner Domain veröffentlichst du eine Liste aller Server, die berechtigt sind, in deinem Namen E-Mails zu verschicken. Empfangende Mailserver schauen bei jeder eingehenden Mail in diesen Record und prüfen: Stammt die IP des Absenders aus deiner Liste? Wenn nicht, gilt die Mail als verdächtig.
Aufbau eines SPF-Records
Ein typischer SPF-Record sieht so aus:
v=spf1 ip4:185.40.10.0/24 include:_spf.google.com include:sendgrid.net ~all
Der Record besteht aus mehreren Mechanismen:
v=spf1— Versionskennung, immer als Erstes.ip4:.../ip6:...— einzelne IPs oder ganze Bereiche.a— der A-Record der Domain darf senden.mx— alle MX-Server der Domain dürfen senden.include:...— der SPF-Record einer anderen Domain wird mitgenutzt (z. B. Google Workspace, Microsoft 365, SendGrid).~alloder-all— Default-Policy am Ende: SoftFail (~) oder HardFail (-) für alle nicht aufgelisteten Server.
~all vs. -all
Beide signalisieren "alle anderen Server sind nicht autorisiert", aber mit unterschiedlicher
Härte. ~all (SoftFail) sagt: "verdächtig,
aber nicht ablehnen". -all (HardFail)
sagt: "Mail klar verwerfen". Die meisten Mailserver behandeln ~all
als Spam-Indikator, aber lehnen die Mail nicht direkt ab. Mit DMARC p=reject
wird der Unterschied praktisch irrelevant — DMARC macht die Ablehnung verbindlich.
Das 10-Lookup-Limit
SPF-Auswertung darf maximal 10 DNS-Lookups verursachen. Jeder
include:-Mechanismus zählt als ein
Lookup, und der referenzierte SPF-Record kann selbst weitere Includes haben — die ebenfalls
zählen. Wer drei E-Mail-Anbieter (Google + Microsoft + SendGrid) per Include einbindet,
sprengt das Limit fast immer. Der SPF-Record ist dann permerror und wird komplett
ignoriert.
Lösung: Includes durch direkte IP-Bereiche ersetzen (z. B. via "SPF Flattening"-Tools wie DMARCLY oder durch manuelle Pflege der IP-Listen).
Häufige Fehler
- Mehrere SPF-Records: Pro Domain ist nur ein SPF-TXT-Record erlaubt. Mehrere Records werden als Fehler gewertet, SPF schlägt komplett fehl.
- Fehlende Newsletter-Tools: Versendest du Newsletter über Mailchimp/Brevo/etc., aber das ist nicht im SPF? Alle Newsletter laufen ins Spam.
- Subdomains vergessen: SPF gilt nur für die exakte Domain. Subdomains brauchen eigene SPF-Records (oder die Hauptdomain bekommt einen Wildcard-MX).
- Alte Daten: Wechsel des Hosters oder Newsletter-Tools, alter Eintrag bleibt drin — Lookup-Limit ist plötzlich gesprengt.
SPF reicht nicht
SPF allein wird beim Mail-Forwarding gebrochen — wenn der Empfänger die Mail an eine andere Adresse weiterleitet, ändert sich die Absender-IP und SPF schlägt fehl, obwohl die Mail legitim ist. Deshalb braucht es zusätzlich DKIM (kryptografische Signatur, übersteht Forwarding) und DMARC als Klammer, die SPF und DKIM zusammenbringt und die Aktion bei Fehlern definiert.