Stand: Juli 2026
Zusammenfassung: Nach dieser Anleitung publiziert jede deiner Mailcow-Domains einen korrekten SPF-Record — und die flankierenden Voraussetzungen (PTR, IPv6) stimmen auch.
Voraussetzungen
- Ein laufender Mailcow-Server mit festem
MAILCOW_HOSTNAME(z. B.mail.beispiel.de) - Zugriff auf die DNS-Verwaltung deiner Domain(s)
- Zugriff auf die PTR-Verwaltung deines Server-Providers
Was ist SPF?
SPF (Sender Policy Framework) ist ein TXT-Record im DNS deiner Domain. Er listet auf, welche Mailserver E-Mails mit deiner Domain als Absender verschicken dürfen. Beim Selbsthosten bist du auf beiden Seiten verantwortlich: Dein Mailcow prüft eingehend SPF fremder Domains — und deine eigenen Domains brauchen saubere Records, damit Gmail, Outlook & Co. deine Mails annehmen.
Zur Einordnung: SPF allein ist noch kein vollständiger Schutz. Erst zusammen mit DKIM und DMARC wird daraus ein belastbares Fundament — die Mailcow-Doku empfiehlt alle drei.
Die Ausgangslage bei Mailcow
Mailcow selbst setzt keine DNS-Records — das kann es nicht, deine DNS-Zone liegt ja bei deinem Domain-/DNS-Anbieter. Die Mailcow-Doku definiert aber präzise, was sie erwartet. Der empfohlene SPF-Record:
v=spf1 mx a -all
Damit darf nur dieser Server (der MX deiner Domain) senden — alle anderen werden hart abgelehnt. Für einen selbst gehosteten Server ist das genau richtig: Du kennst deine Versandwege.
Wichtig: Jede Domain, die du in Mailcow anlegst, braucht ihren eigenen Record-Satz — MX plus SPF, nicht nur die Hauptdomain.
Schritt-für-Schritt-Anleitung
1. PTR-Records prüfen (die unterschätzte Voraussetzung)
Bevor SPF überhaupt hilft: Der PTR-Record deiner Server-IP muss dem MAILCOW_HOSTNAME entsprechen — die Mailcow-Doku stellt das an den Anfang der DNS-Anforderungen. Den PTR setzt du beim Provider, von dem die IP stammt (Hetzner, Netcup, …). Und: für IPv4 und IPv6 getrennt, wenn dein Server über beide sendet.
dig -x 203.0.113.25 +short # muss mail.beispiel.de. liefern
2. Prüfen, ob SPF schon aktiv ist
dig TXT beispiel.de +short | grep spf1
Alternativ wirf deine Domain in den kostenlosen MXAudit-Scanner — der prüft SPF und die PTR-Zuordnung deiner MX-IPs in einem Rutsch.
3. SPF-Record bei deinem DNS-Anbieter setzen
Lege für jede Mailcow-Domain einen TXT-Record auf der Hauptdomain (@) an:
v=spf1 mx a -all
mx autorisiert die Server hinter deinen MX-Records (also deinen Mailcow), a zusätzlich die IP hinter dem A-/AAAA-Record der Domain selbst. Wo genau du den Record einträgst, hängt vom DNS-Anbieter ab — siehe unsere Anleitungen für IONOS, Strato, All-Inkl, Netcup und Hetzner DNS.
4. Zusätzliche Versender ergänzen (falls nötig)
Sendet neben Mailcow noch ein Newsletter-Dienst für die Domain, kommt dessen include in denselben Record:
v=spf1 mx a include:spf.newsletter-dienst.de -all
Pro Domain gilt: nur ein SPF-Record. Zwei TXT-Einträge mit v=spf1 ergeben permerror.
5. DKIM gleich mitmachen
Die Mailcow-Doku empfiehlt dringend, in der Mailcow-UI einen DKIM-Schlüssel zu erzeugen und den zugehörigen TXT-Record im DNS zu setzen. SPF authentifiziert den Server, DKIM signiert die Nachricht — zusammen mit DMARC wird daraus ein rundes Setup.
6. Warten, bis die Änderung aktiv ist
DNS-Änderungen brauchen Zeit: Je nach TTL und Caching kann es einige Stunden dauern, bis alle Server weltweit den neuen Record sehen.
Die Bestandteile im Detail
| Bestandteil | Bedeutung |
|---|---|
v=spf1 | Versionskennung, steht immer am Anfang |
mx | erlaubt die Server hinter den MX-Records — deinen Mailcow |
a | erlaubt zusätzlich die IP hinter dem A-/AAAA-Record der Domain |
-all | Hardfail: alles andere wird abgelehnt — bei bekannten Versandwegen die richtige Wahl |
Ergebnis prüfen
Prüfe deine Konfiguration mit dem kostenlosen MXAudit-Scanner — er zeigt dir SPF-Syntax, Lookup-Verbrauch und PTR-Zuordnung deiner MX-IPs auf einen Blick.
Oder direkt im Terminal:
dig TXT beispiel.de +short | grep spf1
Die Ausgabe muss genau einen Record mit v=spf1 enthalten.
Häufige Fehler
PTR fehlt oder zeigt woandershin. Der Klassiker beim Selbsthosten: SPF stimmt, aber der Reverse-DNS der Server-IP passt nicht zum Hostnamen — viele Empfänger lehnen schon deshalb ab. PTR beim IP-Provider korrigieren.
IPv6 vergessen. Sendet dein Server über IPv6, braucht auch die IPv6-Adresse einen PTR — und die AAAA-Records müssen zu deinem Record passen. Sonst scheitern genau die Zustellungen an moderne Empfänger, die IPv6 bevorzugen.
Nur die Hauptdomain versorgt. Jede in Mailcow angelegte Domain braucht MX- und SPF-Records. Eine vergessene Zweitdomain sendet sonst ungeschützt.
Zwei SPF-Records. Zwei TXT-Einträge mit v=spf1 führen zu permerror — alle Quellen gehören in einen einzigen Record.
+all am Ende. Ein +all erlaubt jedem Server das Senden und macht den gesamten Record wirkungslos — nicht übernehmen.
Weiterleitungen schlagen fehl. Leitet ein Empfänger deine Mail automatisch weiter, schlägt SPF beim Endempfänger oft fehl — der weiterleitende Server steht ja nicht in deinem Record. Beim Selbsthosten kannst du auf der Weiterleitungsseite SRS aktivieren; als Absender fangen DKIM und DMARC den Fall ab.
Weiterführende Links
- Mailcow-Doku: DNS setup (abgerufen: 10. Juli 2026)
- RFC 7208 — Sender Policy Framework (SPF)
