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:

RegelWirkung
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:

FeldWert
TypeTXT
Name@ (für die Root-Domain)
Contentv=spf1 mx ~all
TTLAuto

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.