Mailcow: Gmail-Reject wegen fehlendem IPv6 PTR-Record beheben
Mailcow: Gmail-Reject wegen fehlendem IPv6 PTR-Record beheben
Inhaltsverzeichnis
Der Fehler
Ausgehende Mails von Mailcow an Gmail-Adressen wurden mit folgendem Fehler abgelehnt:
550-5.7.25 [2a01:4f8:c17:759d::1] The IP address sending this message
does not have a PTR record setup, or the corresponding forward DNS entry
does not match the sending IP. As a policy, Gmail does not accept
messages from IPs with missing PTR records.
Ursache
Postfix (innerhalb von Mailcow) bevorzugt automatisch IPv6 für ausgehende Verbindungen, wenn die Netzwerkschnittstelle eine IPv6-Adresse hat — was auf modernen Hetzner-Servern standardmäßig der Fall ist.
Das Problem: Für die IPv6-Adresse 2a01:4f8:c17:759d::1 fehlten zwei Records:
| Record | Typ | Status |
|---|---|---|
2a01:4f8:c17:759d::1 |
PTR (Reverse DNS) | ❌ fehlte |
mail.matzka.cloud |
AAAA (Forward DNS) | ❌ fehlte |
Gmail prüft beide Richtungen: Der PTR-Record der sendenden IP muss auf den Hostnamen zeigen, und der AAAA-Record des Hostnamens muss zur IP zurückzeigen. Fehlt einer von beiden — oder stimmen sie nicht überein — wird die Mail abgelehnt.
Fix: PTR & AAAA Record setzen
Schritt 1: PTR bei Hetzner setzen
Der PTR-Record (Reverse DNS) wird beim Hosting-Provider gesetzt — in diesem Fall im Hetzner Robot unter Server → IPs → Reverse DNS bearbeiten:
| IP-Adresse | PTR-Ziel |
|---|---|
2a01:4f8:c17:759d::1 |
mail.matzka.cloud |
Schritt 2: AAAA bei internex.at setzen
Die DNS-Zone für matzka.cloud wird bei internex.at verwaltet.
Dort wurde ein AAAA-Record für mail.matzka.cloud hinzugefügt:
| Typ | Hostname | Wert | TTL |
|---|---|---|---|
| AAAA | mail |
2a01:4f8:c17:759d::1 |
3600 |
Propagierung prüfen
Nach dem Setzen der Records dauert die Propagierung typisch 5–30 Minuten. Prüfen mit:
# PTR: muss mail.matzka.cloud zurückgeben
dig -x 2a01:4f8:c17:759d::1 +short
# AAAA: muss 2a01:4f8:c17:759d::1 zurückgeben
dig AAAA mail.matzka.cloud +short
Beide Ausgaben müssen übereinstimmen:
$ dig -x 2a01:4f8:c17:759d::1 +short
mail.matzka.cloud.
$ dig AAAA mail.matzka.cloud +short
2a01:4f8:c17:759d::1
Alternative: IPv4 erzwingen
Falls das Setzen eines PTR-Records nicht möglich ist (z.B. bei shared Hosting),
kann Postfix auf IPv4 für ausgehende Mail gezwungen werden. In Mailcow die Datei
/opt/mailcow-dockerized/data/conf/postfix/extra.cf bearbeiten:
# Prefer IPv4 for outgoing mail
smtp_address_preference = ipv4
Danach Postfix in Mailcow neu starten:
cd /opt/mailcow-dockerized
docker compose restart postfix-mailcow
Ergebnis
Nach dem Setzen beider Records und Warten auf die Propagierung wurde eine Test-Mail an Gmail erfolgreich zugestellt. Kein weiterer Eingriff in die Mailcow-Konfiguration nötig.