Du hast einen Root-Server, Plesk ist installiert, der Mailserver läuft, und trotzdem landen Mails entweder im Spam oder kommen gar nicht an. Dieses Szenario ist häufiger als man denkt, und die Ursachen sind meistens dieselben. Hier ist der Debugging-Prozess der tatsächlich funktioniert.
Schritt 1: TLS-Zertifikat prüfen
Zuerst prüfen ob das Zertifikat des Mailservers überhaupt noch gültig ist:
echo | openssl s_client -connect mail.example.de:465 -servername mail.example.de 2>/dev/null | openssl x509 -noout -dates
Wenn notAfter in der Vergangenheit liegt, ist das Zertifikat abgelaufen. In Plesk unter Websites & Domains → example.de → SSL/TLS-Zertifikate das Let’s Encrypt-Zertifikat neu ausstellen. Wichtig: in Plesk gibt es ein separates Zertifikat für den Mailserver, darauf achten dass beide erneuert werden.
Schritt 2: Postfix-Logs nach der Queue-ID durchsuchen
Jede Mail die Postfix annimmt bekommt eine Queue-ID. Die findet sich in den SMTP-Logs oder im Response des Mailservers. Mit dieser ID den kompletten Weg der Mail verfolgen:
grep "QUEUE-ID" /var/log/maillog
Die letzte Zeile ist entscheidend, entweder status=sent oder eine Fehlermeldung vom Ziel-Server. Ein typischer Gmail-Bounce sieht so aus:
status=bounced (host gmail-smtp-in.l.google.com said:
550-5.7.26 Your email has been blocked because the sender is unauthenticated.
550-5.7.26 DKIM = did not pass
550-5.7.26 SPF [example.de] with ip: [1.2.3.4] = did not pass)
Gmail sagt dir hier genau was fehlt.
Schritt 3: SPF auf der richtigen Domain
Der häufigste Fehler überhaupt: SPF ist nur auf der Mail-Subdomain gesetzt (mail.example.de), aber die Mails kommen von der Hauptdomain (example.de). Gmail und andere Mailserver prüfen den Envelope-From, und der zeigt auf die Hauptdomain.
Prüfen:
dig TXT example.de | grep spf
dig TXT mail.example.de | grep spf
Wenn nur die Subdomain einen SPF-Record hat, fehlt das Entscheidende. Lösung: TXT-Record für @ (Hauptdomain) beim DNS-Anbieter hinzufügen:
v=spf1 ip4:DEINE-SERVER-IP ~all
Schritt 4: DKIM aktivieren
DKIM fehlt auf vielen Plesk-Installationen komplett. Prüfen:
dig TXT default._domainkey.example.de
Keine Antwort = kein DKIM. In Plesk unter Mail → example.de → Mail Settings DKIM aktivieren. Plesk generiert den DNS-Eintrag automatisch und zeigt ihn an, diesen TXT-Record beim DNS-Anbieter unter default._domainkey.example.de eintragen.
Schritt 5: DMARC-Record setzen
Optional, aber gut für die Reputation. Signalisiert empfangenden Servern dass die Domain aktiv verwaltet wird:
Name: _dmarc
Type: TXT
Value: v=DMARC1; p=none; rua=mailto:postmaster@example.de
p=none ist reines Monitoring, keine Mails werden abgelehnt, aber die Domain baut Reputation auf.
Schritt 6: DNS-Propagation abwarten und prüfen
Nach DNS-Änderungen kurz warten (5-30 Minuten) und dann direkt prüfen ob die Records aktiv sind:
dig TXT example.de
dig TXT default._domainkey.example.de
dig TXT _dmarc.example.de
Sonderfall: Mail landet nie an, auch kein Bounce
Wenn eine Mail laut Logs status=sent hat aber trotzdem nie ankommt: prüfen ob Absender und Empfänger auf demselben Server liegen. Postfix liefert Mails an lokale Domains intern zu, ohne sie extern zu routen. Eine Mail von newsletter@example.de an user@example.de landet direkt in der lokalen Mailbox, auch wenn der Absender eine externe Anwendung ist. In diesem Fall einfach eine externe Adresse zum Testen verwenden.
Die häufigsten Ursachen auf einen Blick
| Problem | Symptom | Fix |
|---|---|---|
| Abgelaufenes TLS-Zertifikat | Verbindungsfehler beim Senden | Plesk: Let’s Encrypt erneuern |
| SPF nur auf Subdomain | Gmail: SPF did not pass | TXT-Record für @ hinzufügen |
| DKIM fehlt | Gmail: DKIM did not pass | In Plesk aktivieren, DNS-Eintrag setzen |
| Mail intern zugestellt | Mail “angenommen” aber nie angekommen | Empfänger-Domain liegt auf demselben Server |
| DNS noch nicht propagiert | Fehler bleibt nach Fix bestehen | Warten und mit dig prüfen |
Fazit
Die gute Nachricht: die Ursachen sind fast immer dieselben. Ein abgelaufenes Zertifikat, ein fehlender SPF-Record auf der falschen Domain, oder kein DKIM. Die Postfix-Logs mit der Queue-ID sind dabei das wichtigste Werkzeug, damit lässt sich jede Mail lückenlos bis zur Zustellung oder zum Bounce verfolgen.
Verwandtes Problem: Wenn Mails zwischen zwei Domains auf demselben Plesk-Server fehlschlagen und du den Fehler User unknown in virtual mailbox table siehst, liegt das an einem anderen Plesk-Verhalten, hier habe ich das erklärt.
Kommentare