Es gibt eine Sorte Fehler, die besonders teuer ist: die, die niemand bemerkt. Ein Kontaktformular, das keine Fehlermeldung zeigt, dem Besucher brav „Vielen Dank für deine Nachricht" anzeigt – und dessen Mail nie irgendwo ankommt. Niemand beschwert sich, denn der Interessent denkt, er habe eine Antwort zu erwarten, und du denkst, es habe niemand geschrieben. Wochen später fällt es zufällig auf, meistens weil jemand anruft und sagt: „Ich hatte doch geschrieben."
Der Grund dafür ist fast immer derselbe, und er ist gut zu beheben. Dieser Artikel erklärt, warum WordPress im Auslieferungszustand schlecht E-Mails verschickt, welche drei Wege es heute gibt und wie die Umstellung praktisch abläuft – inklusive der Anbindung an Microsoft 365 über eine Schnittstelle statt über ein Passwort.
WordPress verschickt Post über die Funktion wp_mail(). Wenn nichts anderes eingerichtet ist, reicht die ihre Nachricht an die PHP-Funktion mail() weiter – und die übergibt sie an das Mailprogramm des Webservers. Der Webserver verschickt die Mail also selbst, in eigener Regie, unter seiner eigenen IP-Adresse.
Das war vor fünfzehn Jahren normal. Heute ist es der zuverlässigste Weg in den Spam-Ordner, und zwar aus drei Gründen:
Der Absender ist nicht nachweisbar. In der Mail steht als Absender deine Domain – verschickt hat sie aber ein Webserver, der mit dem Mailversand deiner Domain nichts zu tun hat. Empfänger prüfen inzwischen standardmäßig, ob der versendende Server dazu berechtigt ist (SPF) und ob die Mail eine gültige Signatur trägt (DKIM). Beides fällt beim PHP-Versand üblicherweise durch. Wer zusätzlich eine DMARC-Regel gesetzt hat, weist seine eigenen Formularmails damit sogar aktiv ab.
Die Adresse des Servers hat einen Ruf – meistens keinen guten. Auf einem geteilten Webspace sitzen hunderte Kunden auf derselben IP-Adresse. Es genügt, dass einer davon eine gekaperte Installation betreibt, und die Adresse steht auf einer Sperrliste. Deine Formularmail hängt mit drin.
Du erfährst nicht, was passiert ist. mail() meldet „erfolgreich", sobald der Server die Nachricht in seine eigene Warteschlange gelegt hat. Ob der Empfänger sie jemals gesehen hat, ob sie abgelehnt oder stillschweigend aussortiert wurde – davon weiß WordPress nichts. Genau deshalb fällt der Ausfall so spät auf.
Seit die großen Anbieter ihre Anforderungen verschärft haben – Google und Yahoo verlangen seit Anfang 2024 von Versendern mindestens eine gültige Authentifizierung, bei größeren Mengen alle drei Einträge – ist aus einem Schönheitsfehler ein echtes Problem geworden. Für eine Mail, die Geld wert ist, ist der PHP-Versand keine Option mehr.
Bevor es an den Versandweg geht, lohnt ein Blick in die Einstellungen des Formular-Plugins. Denn ein Klassiker ist unabhängig von der Technik: Als Absender der Benachrichtigung wird die E-Mail-Adresse eingetragen, die der Besucher ins Formular getippt hat.
Das ist gut gemeint – man kann dann direkt auf die Mail antworten – aber technisch ist es eine Fälschung. Deine Website behauptet damit, sie sei max.mustermann@gmx.de. Kein Empfänger glaubt das, und je besser der Spamschutz, desto sicherer fliegt die Mail raus. Bei großen Freemail-Anbietern mit strenger DMARC-Regel wird sie schlicht abgelehnt.
Richtig ist die Trennung in zwei Felder, die jedes ernstzunehmende Formular-Plugin anbietet:
website@deine-firma.de. Sie muss zu der Domain passen, über die auch versendet wird.Zwei Kleinigkeiten gehören dazu: Setz den Betreff selbst zusammen, statt Besuchertext ungefiltert hineinzukopieren – das spart Ärger mit Spamfiltern und mit Bots, die dort Unsinn einschleusen. Und richte die Absenderadresse als echtes Postfach oder zumindest als Weiterleitung ein, damit Fehlermeldungen des Empfängers (Bounces) irgendwo ankommen statt ins Leere zu laufen.
Der einfachste saubere Weg: WordPress meldet sich mit Benutzername und Passwort an einem echten Postfach an und verschickt darüber – genau wie es Outlook auf deinem Rechner tut. Die Mail kommt dann vom Mailserver deiner Domain, ist durch SPF gedeckt und wird in der Regel signiert.
Umgesetzt wird das mit einem Plugin. FluentSMTP ist kostenlos und ohne Funktionsbeschränkung, Alternativen sind WP Mail SMTP oder Post SMTP. Gebraucht werden vier Angaben, die dein Mailanbieter dokumentiert: Serveradresse, Port, Benutzername, Passwort. Für den Port gilt: 587 mit STARTTLS ist der Normalfall, 465 mit direktem SSL die Alternative. Port 25 nimmst du nie.
Zwei Dinge, die dabei gern übersehen werden:
wp-config.php abzulegen – dort gehören sie hin.Der Haken: Jeder Anbieter begrenzt die Menge pro Stunde oder Tag, und bei manchen Hostern ist der ausgehende Port 587 überhaupt gesperrt. Für ein Kontaktformular und ein paar Passwort-Zurücksetzungen reicht es locker. Für einen Shop mit hunderten Bestellbestätigungen wird es eng.
Wer im Haus mit Microsoft 365 oder Google Workspace arbeitet, sollte gar nicht erst mit SMTP anfangen. Beide Anbieter schalten die einfache Anmeldung mit Benutzername und Passwort schrittweise ab, weil sie sich nicht mit Zwei-Faktor-Anmeldung verträgt und bei einem Leck sofort das ganze Konto offensteht. Der moderne Weg ist eine Schnittstelle: WordPress bekommt kein Passwort, sondern eine eigene, jederzeit widerrufbare Berechtigung.
Bei Microsoft 365 läuft das in drei Schritten, die FluentSMTP in seiner Dokumentation Schritt für Schritt zeigt:
Wenn dabei eine Fehlermeldung zur Redirect-URI erscheint, stimmt die in Azure hinterlegte Adresse nicht auf das Zeichen mit der aus dem Plugin überein. Das ist mit Abstand der häufigste Stolperstein.
Für Google Workspace gilt derselbe Aufbau mit anderen Menünamen. Der Vorteil in beiden Fällen: Es liegt kein Passwort in WordPress, die Berechtigung lässt sich einzeln entziehen, und ein Passwortwechsel des Benutzers legt die Website nicht lahm.
Sobald es um Mengen geht – Shop-Bestätigungen, Buchungssysteme, Mitgliederbereiche – gehört der Versand zu einem Dienst, der nichts anderes macht. Transaktionsmail-Anbieter wie Postmark, Brevo, Amazon SES, Mailgun oder SMTP2GO pflegen die Zustellbarkeit ihrer Server als Geschäftsmodell. Angebunden werden sie entweder per SMTP oder – besser – über ihre Schnittstelle, in FluentSMTP sind die gängigen bereits als fertige Verbindungen hinterlegt.
Was du dafür bekommst: ein Protokoll jeder einzelnen Mail mit Zustellstatus, automatische Behandlung von Bounces, und eine Absender-Reputation, die nicht an deinem Webserver hängt. Was du dafür tun musst: die Domain beim Anbieter verifizieren, dessen DKIM-Einträge ins DNS setzen und – weil dort personenbezogene Daten verarbeitet werden – einen Auftragsverarbeitungsvertrag abschließen und auf den Verarbeitungsort achten. Die meisten Anbieter haben kostenlose Kontingente, die für eine Firmenwebsite oft schon reichen.
Der Versandweg ist die eine Hälfte, die Erlaubnis im DNS die andere. Drei Einträge auf deiner Domain entscheiden darüber, ob eine Mail überhaupt ernst genommen wird: SPF legt fest, welche Server in deinem Namen versenden dürfen. DKIM hinterlegt den Schlüssel, mit dem Mails signiert werden. DMARC sagt dem Empfänger, was er tun soll, wenn die ersten beiden nicht passen – und lässt dich Berichte darüber bekommen, wer sonst noch unter deinem Namen schreibt.
Wechselst du den Versandweg, musst du das dort nachziehen. Und wenn du nur eine einzige Sache aus diesem Artikel mitnimmst, dann diese: Prüf nach jeder Umstellung, ob die Einträge noch stimmen. Genau dafür gibt es hier ein kostenloses Werkzeug – der E-Mail-Check liest die Einträge deiner Domain aus, rechnet die SPF-Kette durch und sagt in normalem Deutsch, was fehlt. Wie die drei Einträge im Detail funktionieren, ist einen eigenen Artikel wert; der folgt.
pass für spf, dkim und dmarc – dann ist der Versand sauber.Die Plugins sind kostenlos, die Kontingente der Transaktionsdienste für eine normale Firmenwebsite meistens auch. Bezahlt wird die Einrichtung: Die Umstellung einer bestehenden WordPress-Seite auf SMTP ist typischerweise eine Sache von ein bis zwei Stunden, die Anbindung an Microsoft 365 mit App-Registrierung etwas mehr – vorausgesetzt, jemand mit Zugriff auf das Microsoft-Konto sitzt mit am Tisch. Wer zusätzlich SPF, DKIM und DMARC sauber setzt, sollte einen halben Tag einplanen. Gemessen an einer einzigen verlorenen Anfrage ist das eine der günstigsten Investitionen, die eine Website hergibt.
Der Mailversand ist der Teil einer Website, über den im Projekt nie gesprochen wird – und der als Erstes kaputtgeht, ohne dass es jemand merkt. Die Reihenfolge ist zum Glück überschaubar: Absender im Formular geradeziehen, den PHP-Versand durch SMTP oder eine Schnittstelle ersetzen, DNS-Einträge prüfen, Protokoll einschalten, testen. Danach weißt du nicht nur, dass Mails ankommen – du merkst es auch, wenn sie es einmal nicht tun.
Du bist dir nicht sicher, ob deine Formularmails ankommen? Starte mit dem kostenlosen E-Mail-Check – und wenn dabei etwas auffällt, bring ich das mit dir in Ordnung.
Am sichersten durch einen Test an mehrere fremde Anbieter – eine Adresse bei einem Freemail-Dienst, eine bei einer anderen Firmendomain. Kommt die Mail nur bei dir selbst an, beweist das wenig. Ein zweiter Hinweis steckt in den Kopfzeilen einer empfangenen Testmail: Steht dort bei spf, dkim oder dmarc etwas anderes als pass, ist der Versand nicht sauber. Und dauerhaft hilft nur ein Protokoll im Versand-Plugin, das jede Mail mitschreibt.
Für den Versandweg ja, für die Zustellbarkeit nicht ganz. Das Plugin sorgt dafür, dass die Mail über einen berechtigten Server hinausgeht – erlaubt wird sie erst durch die Einträge im DNS deiner Domain. Wer über das eigene Firmenpostfach versendet, ist meist automatisch mit abgedeckt, weil der Anbieter SPF und DKIM schon eingerichtet hat. Wer einen externen Dienst anbindet, muss dessen Einträge ergänzen.
Nein, und das ist keine Formsache. Massenversand über ein normales Postfach führt zu Sperren beim Anbieter und ruiniert die Reputation deiner Domain – ganz abgesehen davon, dass Abmeldelink, Einwilligungsnachweis und Auswertung fehlen. Newsletter gehören in ein eigenes System; welches passt, steht im Vergleich der Newsletter-Systeme.
Der Versand bleibt stehen – ohne Warnung und ohne dass sich an der Website etwas geändert hätte. Das Formular zeigt weiterhin seine Dankesseite an. Deshalb gehören zwei Dinge dazu: der Ablauftermin im Kalender und eine Fehlerbenachrichtigung im Plugin, die sich melden kann, wenn der Versand scheitert. Erneuern lässt sich das Geheimnis im Portal in wenigen Minuten; die neue Zeichenfolge wird dann in WordPress eingetragen.
Das Grundproblem ja, die Lösung sinngemäß auch. Jedes System, das aus einer Website heraus Post verschickt – TYPO3, Joomla, ein Shopsystem oder eine selbst gebaute Seite – steht vor derselben Frage: Wer darf im Namen dieser Domain versenden, und ist die Mail signiert? Unterschiedlich ist nur, wo die Zugangsdaten eingetragen werden.
Grafikdesigner & Programmierer. Seit über 25 Jahren in der Werbung zuhause – heute mit Fokus auf Websites, 3D, SEO und KI-Automation für Agenturen und Unternehmen.
Unverbindlich und auf Augenhöhe – ich sage dir ehrlich, was sinnvoll ist.
Termin vereinbaren → oder Kontaktdaten ansehen