// so behebst du es
SMTP-Port 25 blockiert: „Connection timed out“ bei AWS, Azure, GCP, VPS
Dein Server kann sich auf Port 25 nicht mit anderen Mailservern verbinden? Cloud-Anbieter und Internetanbieter sperren ihn oft. Teste es und sende über Port 587.
Was das bedeutet
Um eine E-Mail zuzustellen, verbindet sich dein Server auf Port 25 mit dem Mailserver des Empfängers. Bekommt diese Verbindung nie eine Antwort, blockiert wahrscheinlich dein Netzwerk oder dein Hoster ausgehenden Verkehr auf Port 25. Nachrichten bleiben in der Warteschlange und kommen nach einigen Tagen schließlich zurück.
Je nach Software sieht der Fehler meist so aus:
connect to gmail-smtp-in.l.google.com[142.250.27.26]:25: Connection timed out Error: connect ETIMEDOUT 203.0.113.50:25 SMTP ERROR: Failed to connect to server: Connection timed out (110)
„Timed out“ (gar keine Antwort) deutet auf eine Sperre hin. „Connection refused“ oder eine 5xx-Antwort ist ein anderes Problem auf der Gegenseite.
Warum das passiert
Spammer mieten gern billige Server, deshalb sperren die meisten Anbieter ausgehenden Port 25 standardmäßig. Die Regeln ändern sich, also prüfe die aktuelle Dokumentation deines Anbieters. Zum Zeitpunkt des Schreibens:
- Amazon EC2 und Lightsail beschränken ausgehenden Port 25 standardmäßig. Du kannst AWS über ihr Antragsformular bitten, die Beschränkung aufzuheben, und deinen Einsatzzweck erklären. Amazon SES auf Port 587 oder 465 ist die Alternative.
- Google Cloud (Compute Engine) sperrt ausgehende Verbindungen auf Port 25 zu externen Adressen. Google empfiehlt einen Mail-Dienst auf einem anderen Port.
- Microsoft Azure sperrt ausgehenden Port 25 für die meisten Abonnementtypen; nur manche Enterprise-Verträge dürfen direkt senden. Microsoft empfiehlt ein authentifiziertes Relay.
- DigitalOcean sperrt SMTP auf Droplets standardmäßig; laut Berichten aus der Community kann die Sperre auch die Ports 465 und 587 umfassen.
- Internetanschlüsse zu Hause und im Büro sperren Port 25 meist ebenfalls. Private IPs stehen außerdem auf Blocklisten, direktes Senden von zu Hause klappt also ohnehin selten.
So prüfst du es
Teste vom Server selbst Port 25 zu einem großen Mailserver und danach einen Submission-Port:
nc -vz -w 5 gmail-smtp-in.l.google.com 25 nc -vz -w 5 smtp.gmail.com 587
Verbindet sich 587 und läuft 25 in einen Timeout, liegt die Sperre bei deinem Netzwerk oder Anbieter, nicht bei Google. Prüfe auch deine eigene Firewall (ufw status, iptables -L OUTPUT) und die Regeln deiner Cloud-Firewall oder Security Group für ausgehenden Verkehr.
Bei Postfix listet postqueue -p hängende Nachrichten mit dem Grund auf. Sobald du einen funktionierenden Weg hast, schick einen Test an die einmalige Adresse auf der Startseite von Delivmail, um den gesamten Pfad zu prüfen.
So behebst du es
Option 1: den Anbieter bitten, Port 25 freizugeben
Manche Anbieter (zum Beispiel AWS) nehmen einen Antrag an. Meist musst du erklären, was du versendest, einen Reverse-DNS-Namen setzen und die Beschwerden niedrig halten. Lies vorher die Checkliste für den eigenen Mailserver: Eine neue Cloud-IP hat keine Reputation.
Option 2: über einen Mail-Dienst auf Port 587 weiterleiten
Das ist die übliche Lösung. Dein Server sendet mit Anmeldung auf Port 587 an einen E-Mail-Dienst (deinen Postfach-Anbieter oder einen Transaktionsdienst), und dieser Dienst stellt auf Port 25 von seinen eigenen IPs mit gutem Ruf zu. Viele Dienste akzeptieren auch Port 2525 oder eine HTTP-API, falls 587 ebenfalls gesperrt ist. Postfix-Beispiel, in main.cf:
relayhost = [smtp.your-provider.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = encrypt
Und in /etc/postfix/sasl_passwd:
[smtp.your-provider.com]:587 username:password
chmod 600 /etc/postfix/sasl_passwd postmap /etc/postfix/sasl_passwd systemctl reload postfix
In einer Anwendung (nodemailer, PHPMailer…) nimm den Host des Dienstes mit port: 587 und STARTTLS statt einer direkten Verbindung.
Dann das Relay authentifizieren
Das Relay sendet von neuen IPs, also nimm es in SPF auf und aktiviere seine DKIM-Signatur für deine Domain; siehe Deine Domain in Versand-Tools authentifizieren. Sonst bekommst du ein SPF fail: Server nicht autorisiert.
Prüfe, ob es behoben ist
Leere die Warteschlange (postqueue -f) und beobachte das Log: Du solltest status=sent mit deinem Relay-Host sehen. Mach einen neuen Delivmail-Test und prüfe, dass SPF, DKIM und DMARC für das Relay bestehen, und sende dann erneut an die Adresse, die fehlgeschlagen ist.
Prüfe, ob es behoben ist
DNS-Änderungen können ein paar Minuten bis einige Stunden dauern. Sende danach eine neue Test-E-Mail oder scanne deine Domain erneut.
Ähnliche Anleitungen
- Einen eigenen Mailserver betreiben: die Zustellbarkeits-ChecklisteEin selbst gehosteter Postfix-Server kann gut zustellen, aber nur, wenn jede Grundlage stimmt: Reverse DNS, SPF, DKIM, DMARC, TLS und kein offenes Relay.
- So setzt du Reverse DNS (PTR) bei deinem HosterDer PTR-Eintrag deiner Server-IP wird von deinem Hoster gesetzt, nicht im DNS deiner Domain. Hier sind die allgemeinen Schritte bei OVH, Hetzner, Scaleway, AWS und DigitalOcean.
- Dein Mailserver ist ein offenes RelayÜber ein offenes Relay kann jeder im Internet E-Mails über deinen Server senden. Spammer finden es innerhalb von Stunden und deine IP landet auf Blacklists.
- „554 5.7.1 Relay access denied“ beim SendenDein Mailserver weigert sich, deine E-Mail weiterzuleiten, weil du nicht angemeldet bist. Meist fehlt die SMTP-Anmeldung oder der Port in deiner App oder deinem Drucker ist falsch.
- „450 4.7.1 Client host rejected: cannot find your hostname“ (oder „reverse hostname“): so behebst du esDer empfangende Server konnte deiner IP keinen Hostnamen zuordnen. Korrigiere das Reverse DNS (PTR) und den passenden A-Eintrag, um diesen Bounce zu beenden.