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

BestandteilBedeutung
v=spf1Versionskennung, steht immer am Anfang
mxerlaubt die Server hinter den MX-Records — deinen Mailcow
aerlaubt zusätzlich die IP hinter dem A-/AAAA-Record der Domain
-allHardfail: 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.