E-Mails vom eigenen Blog: SMTP, SPF, DKIM und der Stolperstein mit Port 465
Ausgangslage
Kommentarfunktion auf dem Blog aktivieren war der ursprüngliche Plan – Leserinnen und Leser sollten mit Name und E-Mail kommentieren können, ganz ohne Registrierung. Was auf den ersten Blick nach einer Einstellung im WordPress-Dashboard aussah, entpuppte sich unterwegs als kleines Rabbit Hole rund um E-Mail-Versand, Authentifizierung und Zustellbarkeit.
Problem
WordPress verschickt Benachrichtigungs-Mails standardmässig über PHP’s eingebaute mail()-Funktion. Das funktioniert technisch, landet aber bei vielen E-Mail-Anbietern zuverlässig im Spam-Ordner – die Mail kommt schliesslich von einem anonymen Webserver ohne jegliche Reputation.
Die Lösung dafür ist bekannt: eine dedizierte Absenderadresse einrichten und den Versand über einen authentifizierten SMTP-Server laufen lassen statt über die rohe PHP-Funktion. Also no-reply@[Domain] beim Hoster angelegt und ein SMTP-Plugin installiert, das den Versand übernimmt.
Erster Testversand – Fehlschlag:
SMTP Error: Could not connect to SMTP host. Failed to connect to server SMTP code: 111. Additional SMTP info: Connection refused
Das Tückische an „Connection refused“: Es ist kein Timeout, sondern eine aktive Ablehnung. Host, Port, Zugangsdaten – alles nochmal kontrolliert, alles korrekt. Trotzdem keine Verbindung.
Auflösung
Der Verdacht: Manche Shared-Hosting-Umgebungen lassen zwar reguläre Mail-Programme (Outlook, Thunderbird & Co.) problemlos auf beiden SMTP-Standardports verbinden, schränken aber ausgehende Verbindungen aus PHP-Skripten heraus auf bestimmte Ports ein – vermutlich als Sicherheitsmassnahme gegen kompromittierte Skripte, die für Spam-Versand missbraucht werden könnten.
Der erste Versuch lief über Port 465 mit SSL-Verschlüsselung – die „klassische“ Variante. Der Wechsel auf Port 587 mit TLS hat das Problem sofort gelöst. Gleicher Mailserver, andere Tür.
Ein Blick in den Header der danach erfolgreich versendeten Testmail bestätigte, dass auch die Feinheiten stimmten:
- SPF-Prüfung: bestanden
- DKIM-Signatur: verifiziert
- Spam-Score: deutlich im grünen Bereich
Ein Punkt fehlte allerdings noch: kein DMARC-Eintrag für die Domain vorhanden. DMARC baut auf SPF und DKIM auf und teilt Empfangsservern explizit mit, was mit Mails passieren soll, die diese Prüfungen nicht bestehen – ein zusätzlicher Schutz gegen Spoofing-Versuche mit der eigenen Domain. Ergänzt als TXT-Record mit einer zurückhaltenden „nur beobachten“-Policy, die sich später verschärfen lässt.
Lessons Learned
- „Connection refused“ ist nicht „Timeout“: Ersteres deutet auf eine aktive Ablehnung hin, oft durch Port-Einschränkungen auf Skript-Ebene – nicht zwingend auf falsche Zugangsdaten.
- Bei SMTP-Verbindungsproblemen auf Shared Hosting lohnt sich immer der schnelle Test beider Standardports (465/SSL und 587/TLS), bevor man beim Support nachfragt.
- SPF und DKIM sind bei vielen Schweizer Hostern automatisch aktiv, sobald die Domain dort verwaltet wird – DMARC dagegen muss meist manuell ergänzt werden.
- Wer aktiv E-Mail-Adressen über Kommentare sammelt, sollte gleichzeitig die rechtliche Seite (Haftungsausschluss, Datenschutzhinweis) nicht vergessen.
Fazit
Aus einer einfachen „Kommentarfunktion aktivieren“-Aufgabe wurde ein kleiner Deep Dive in E-Mail-Authentifizierung – aber mit klarem Ergebnis: Mails werden jetzt zuverlässig und sauber authentifiziert verschickt, und die Kommentarfunktion kann live gehen.