Stand: Juli 2026
Zusammenfassung: Nach dieser Anleitung publiziert deine bei Cloudflare gehostete DNS-Zone einen korrekten SPF-Record für deinen Mailserver. Empfangende Server erkennen damit, wer in deinem Namen senden darf.
Voraussetzungen
- Eine Domain, deren DNS bei Cloudflare verwaltet wird (Seite DNS > Records im Dashboard)
- Du weißt, welche Server E-Mails für deine Domain versenden (eigener Mailserver, Hoster-Postfach, Newsletter-Dienst oder Cloudflare Email Routing)
Was ist SPF?
SPF (Sender Policy Framework) ist ein TXT-Record im DNS deiner Domain. Cloudflares eigene Doku benennt den Zweck klar: Ohne Authentifizierungs-Records kann „anyone can send email that appears to come from your domain — a technique known as domain spoofing”. Der SPF-Record „Lists the IP addresses and domains authorized to send email on behalf of your domain.” Empfangende Mailserver prüfen bei jeder eingehenden Mail, ob der einliefernde Server auf dieser Liste steht.
Zur Einordnung: SPF allein ist noch kein vollständiger Schutz. Erst zusammen mit DKIM und DMARC wird daraus ein belastbares Fundament. SPF ist aber der einfachste Einstieg.
Die Ausgangslage bei Cloudflare
Cloudflare ist in erster Linie ein DNS-Anbieter: Es gibt keinen vorgefertigten SPF-Schalter, weil der Inhalt des Records davon abhängt, wo deine Mail läuft. Wie Cloudflares Doku festhält: „The exact values for your DNS mail records depend on your email provider.” Den TXT-Record veröffentlichst du selbst im Dashboard.
Eine Cloudflare-Eigenheit: Anders als bei manchen Shared-Hostern verlangt das Dashboard keine Anführungszeichen um den Wert — du fügst den Record-Inhalt in ein schlichtes Content-Feld ein. Und ein TXT-Record wird nie proxied (der orangene Proxy gilt nur für A-, AAAA- und CNAME-Records), hier gibt es also nichts umzuschalten.
Schritt-für-Schritt-Anleitung
1. Prüfen, ob SPF schon aktiv ist
Am schnellsten im Terminal:
dig TXT beispiel.de +short | grep spf
Alternativ wirf deine Domain in den kostenlosen MXAudit-Scanner — der prüft den Record gleich auf Syntax und Lookup-Limit mit.
2. Den Record für dein Setup bauen
Der Klassiker, wenn dieselben Server senden, die auch empfangen (dein MX zeigt auf deinen eigenen Mailserver):
v=spf1 mx ~all
Der mx-Mechanismus autorisiert die IP-Adressen aller MX-Hostnamen deiner Domain — ändert sich die Server-IP, bleibt der SPF-Record automatisch korrekt, solange der MX-Record stimmt. Sobald du deine Versandwege sicher kennst, ziehst du das Ende auf -all an:
v=spf1 mx -all
Versendest du über Cloudflare Email Routing, dokumentiert Cloudflare den exakt zu nutzenden Record:
v=spf1 include:_spf.mx.cloudflare.net ~all
Cloudflares eigene Syntaxregeln aus der Doku:
| Regel | Wirkung |
|---|---|
mit v=spf1 beginnen | „SPF records must start with v=spf1” |
include: | mehrere Dienste mit getrennten include:-Angaben kombinieren |
~all / -all | „Use ~all (SoftFail) or -all (Fail), not +all” |
| max. 10 Lookups | „SPF records are limited to 10 DNS lookups total” |
3. Record im Cloudflare-Dashboard eintragen
Gehe zu DNS > Records, wähle Add record und dann einen Record-Type:
| Feld | Wert |
|---|---|
| Type | TXT |
| Name | @ (für die Root-Domain) |
| Content | v=spf1 mx ~all |
| TTL | Auto |
Klicke auf Save.
4. Externe Versanddienste ergänzen (falls nötig)
Newsletter-Tool, CRM oder ein zweiter Provider brauchen ihren include:-Wert im selben Record. Cloudflares dokumentiertes Merge-Format:
v=spf1 include:_spf.mx.cloudflare.net include:other-service.com ~all
Zum Beispiel Cloudflare Email Routing plus Google Workspace:
v=spf1 include:_spf.mx.cloudflare.net include:_spf.google.com ~all
Es gilt: pro Domain nur ein SPF-Record. Cloudflare ist deutlich — „Having multiple SPF records on your domain is not allowed” — also bestehenden Record bearbeiten, nie einen zweiten anlegen.
5. Warten, bis die Änderung aktiv ist
DNS-Änderungen brauchen Zeit: Je nach TTL und Caching kann es dauern, bis alle Server weltweit den neuen Record sehen. Bei Domains auf Cloudflare DNS geht das meist schnell.
Ergebnis prüfen
Prüfe deine Konfiguration mit dem kostenlosen MXAudit-Scanner — er zeigt dir sofort, ob dein SPF-Record syntaktisch korrekt ist und wie viele DNS-Lookups er verbraucht (das Limit liegt bei 10).
Oder direkt im Terminal:
dig TXT beispiel.de +short | grep spf
Die Ausgabe muss genau einen Record mit v=spf1 enthalten.
Häufige Fehler
Zwei SPF-Records. Zwei TXT-Einträge mit v=spf1 führen zu permerror — empfangende Server werten SPF dann gar nicht mehr aus. Cloudflare sagt: mehrere SPF-Records sind nicht erlaubt; alle Quellen gehören in einen einzigen Record.
+all am Ende. Ein +all erlaubt jedem Server das Senden und macht den gesamten Record wirkungslos — Cloudflare sagt: ~all oder -all nutzen, nicht +all.
mx ohne passende MX-Records. v=spf1 mx -all autorisiert exakt die Server aus deinen MX-Records. Sendet eine Maschine, die dort nicht auftaucht, wird sie abgelehnt — ergänze sie per include:, ip4: oder a:.
DNS-Lookup-Limit überschritten. SPF erlaubt maximal 10 DNS-Lookups pro Prüfung; mx, a: und jedes include: zählen. Bei vielen externen Diensten wird es eng — MXAudit zählt für dich mit.
Weiterführende Links
- Cloudflare Docs: Set up email records (abgerufen: 10. Juli 2026)
- Cloudflare Docs: Email authentication (SPF, DKIM, DMARC) (abgerufen: 10. Juli 2026)
- Cloudflare Docs: Email Service troubleshooting (abgerufen: 10. Juli 2026)
- RFC 7208 — Sender Policy Framework (SPF)
