Wissen · Websites & Projekte

E-Mails aus WordPress versenden – warum Formularmails verschwinden und wie du das abstellst

23. September 2026 · Lesezeit ca. 11 Minuten · von Holger Klopmeyer

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.

Formular auf der Website PHP-mail() SMTP API Spam Eingang Eingang
Derselbe Absender, drei Wege: Ohne Nachweis landet die Mail im Spam, über SMTP oder eine Schnittstelle im Posteingang

Warum der eingebaute Versand nicht mehr funktioniert

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.

Der zweithäufigste Fehler steckt im Formular selbst

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:

  • Absender (From): eine feste Adresse auf deiner eigenen Domain, zum Beispiel website@deine-firma.de. Sie muss zu der Domain passen, über die auch versendet wird.
  • Antwort an (Reply-To): die Adresse aus dem Formularfeld. Ein Klick auf „Antworten" landet dann trotzdem beim Interessenten.

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.

Weg 1: SMTP über ein echtes Postfach

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:

  1. Das Passwort landet sonst in der Datenbank. Wer Zugriff auf ein Backup hat, hat damit Zugriff auf dein Postfach. Die guten Plugins bieten deshalb an, die Zugangsdaten stattdessen als Konstanten in der wp-config.php abzulegen – dort gehören sie hin.
  2. Nimm ein eigenes Postfach. Nicht die persönliche Adresse des Geschäftsführers, sondern ein Konto, das nur die Website benutzt. Wenn es kompromittiert wird oder das Passwort gewechselt werden muss, betrifft das niemanden sonst.

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.

Weg 2: Schnittstelle statt Passwort – Microsoft 365 und Google Workspace

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:

  1. Adresse abholen. In WordPress unter Einstellungen → FluentSMTP die Verbindung „Outlook / Office 365" anlegen. Das Formular zeigt eine App Callback URL – die kopierst du zeichengenau, sie unterscheidet sich je nach Permalink-Einstellung.
  2. App registrieren. Im Azure- beziehungsweise Entra-Portal unter App registrations eine neue Anwendung anlegen, als Redirect-URI vom Typ Web genau diese Callback-Adresse eintragen und anschließend die Client-ID sowie unter Certificates & secrets ein Client-Geheimnis erzeugen. Wichtig: kopiert wird der Wert des Geheimnisses, nicht dessen ID – nach dem Verlassen der Seite ist er nicht mehr einsehbar.
  3. Verbinden. Beide Werte in FluentSMTP eintragen, auf „Authenticate" klicken, die Berechtigung im Microsoft-Fenster bestätigen, den zurückgegebenen Code einsetzen und speichern. Danach muss die Verbindung als verbunden gemeldet werden – und dann sofort eine Testmail.

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.

Weg 3: ein Dienst für Transaktionsmails

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.

Welcher Weg für wen

  • Firmenwebsite mit Kontaktformular, Postfach beim Hoster: SMTP über ein eigenes Postfach. Aufwand: eine halbe Stunde.
  • Microsoft 365 oder Google Workspace im Haus: die Schnittstelle. Etwas mehr Einrichtung, dafür kein Passwort in der Website.
  • Shop, Buchung, Mitgliederbereich, viele Systemmails: ein Transaktionsmail-Dienst.
  • Newsletter an Verteiler: keiner der drei. Newsletter gehören in ein System mit Double-Opt-in, Abmeldelink und Auswertung – nicht in WordPress.

Ohne die DNS-Einträge hilft der beste Versandweg nichts

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.

Wenn trotzdem nichts ankommt: die Fehlersuche

  • Protokoll einschalten. FluentSMTP und die meisten Alternativen führen ein Log jeder verschickten Mail. Steht dort „sent", liegt der Fehler beim Empfänger; steht dort ein Fehler, liegt er bei der Verbindung.
  • Nicht nur an die eigene Adresse testen. Mails an die eigene Domain nehmen oft eine Abkürzung und beweisen gar nichts. Teste an mindestens zwei fremde Anbieter.
  • In den Kopfzeilen nachsehen. Jede empfangene Mail trägt das Prüfergebnis mit sich. Drei Mal pass für spf, dkim und dmarc – dann ist der Versand sauber.
  • Beim Empfänger nachsehen, nicht nur im Spam-Ordner. In Microsoft 365 landen aussortierte Mails in einer Quarantäne, die der Nutzer selbst nie zu sehen bekommt.
  • Den Hoster fragen. Wenn gar nichts geht, ist manchmal schlicht der ausgehende Port gesperrt.

Was das kostet

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.

Fazit

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.

Häufige Fragen

Woran merke ich, dass meine Formularmails gar nicht ankommen?

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.

Reicht nicht ein SMTP-Plugin allein?

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.

Kann ich über den gleichen Weg auch meinen Newsletter verschicken?

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.

Was passiert, wenn das Client-Geheimnis in Azure abläuft?

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.

Gilt das alles auch für andere Systeme als WordPress?

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.

Holger Klopmeyer
Holger Klopmeyer

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.

Fragen zu deinem Projekt?
Lass uns sprechen.

Unverbindlich und auf Augenhöhe – ich sage dir ehrlich, was sinnvoll ist.

Termin vereinbaren → oder Kontaktdaten ansehen