WordPress-Kontaktformular sendet keine E-Mails: Ursachen und Lösung
Das Formular meldet „gesendet“, aber bei Ihnen kommt nichts an? Warum WordPress-Mails im Spam landen oder abgelehnt werden und wie SMTP, SPF, DKIM und DMARC das zuverlässig lösen.
Kurz gesagt: Wenn das Kontaktformular Ihrer WordPress-Seite keine E-Mails mehr sendet, liegt es fast nie am Formular selbst. WordPress verschickt standardmäßig über die PHP-Funktion mail() des Servers. Diese Mails haben keine saubere Absenderprüfung und landen im Spam oder werden abgelehnt. Die zuverlässige Lösung: Versand über SMTP mit einem echten Postfach Ihrer Domain, Absender auf Ihre eigene Domain, dazu SPF, DKIM und DMARC im DNS. Und die Anfragen zusätzlich in WordPress speichern, damit keine verloren geht.
Das Tückische an diesem Fehler: Niemand merkt ihn. Die Besucherin füllt das Formular aus, sieht „Vielen Dank für Ihre Nachricht“ und wartet auf Antwort. Bei Ihnen kommt nichts an. Oft fällt es erst auf, wenn jemand anruft und fragt, warum sich niemand meldet. Bis dahin sind womöglich wochenlang Anfragen verloren gegangen.
Wie WordPress E-Mails verschickt
Ob Contact Form 7, WPForms, Elementor-Formular oder Gravity Forms: Fast alle Formular-Plugins übergeben die Nachricht an die WordPress-Funktion wp_mail(). Diese nutzt ohne weitere Einstellung die PHP-Funktion mail() des Webservers. Der Server verschickt die Mail dann irgendwie, aber nicht über Ihr richtiges Postfach und oft ohne die Signaturen, an denen Gmail, Outlook oder GMX einen echten Absender erkennen.
Früher ging das meistens gut. Heute prüfen die großen Mailanbieter deutlich strenger. Google und Yahoo verlangen seit Februar 2024, dass Absender sich mindestens per SPF oder DKIM ausweisen. Wer viel verschickt (über 5.000 Mails pro Tag an Gmail), braucht SPF und DKIM gemeinsam sowie DMARC. Eine Formular-Mail ohne diese Angaben wird abgelehnt oder landet im Spam.
Die häufigsten Ursachen
1. Der Absender ist die Adresse des Besuchers
Ein Klassiker in Formular-Einstellungen: Als Absender („From“) ist die E-Mail-Adresse eingetragen, die der Besucher ins Formular geschrieben hat, zum Beispiel [your-email] in Contact Form 7. Dann verschickt Ihr Server eine Mail im Namen von max@gmail.com. Der Empfänger erkennt, dass dieser Server nicht für gmail.com sprechen darf. Solche Mails landen bestenfalls im Spam, bei Absenderadressen von Anbietern wie Yahoo, GMX oder web.de werden sie meist ganz abgewiesen.
2. Fehlende SPF-, DKIM- oder DMARC-Einträge
SPF legt im DNS fest, welche Server für Ihre Domain Mails verschicken dürfen. DKIM unterschreibt jede Mail digital. DMARC sagt dem Empfänger, was er mit Mails tun soll, die beide Prüfungen nicht bestehen. Fehlen diese Einträge oder passen sie nicht zum tatsächlichen Versandweg, sinkt die Zustellrate deutlich.
3. Der Hoster hat den Versand eingeschränkt
Manche Hoster begrenzen mail() oder schalten es ganz ab, zum Beispiel nach Spam-Missbrauch auf demselben Server. Manchmal landet auch die IP-Adresse des Servers auf einer Sperrliste.
4. Der externe Maildienst blockiert
Wer schon über einen Dienst wie Brevo, Mailgun oder SendGrid verschickt, ist nicht automatisch auf der sicheren Seite. Läuft das Kontingent ab, wird ein API-Schlüssel ungültig oder sperrt der Dienst den Zugang, kommen keine Mails mehr an. Das Formular meldet trotzdem oft „gesendet“. Genau so einen Fall hatte ich bei einer Kundin: Der Maildienst blockierte die Server-IP, die Seite lief scheinbar normal weiter.
5. Die Mail kommt an, aber im Spam
Bevor Sie lange suchen: Schauen Sie in den Spam-Ordner der Empfängeradresse und, falls vorhanden, in die Quarantäne des Mailservers. Prüfen Sie auch, ob in den Formular-Einstellungen die richtige Empfängeradresse steht. Nach einem Agenturwechsel ist das erstaunlich oft noch die alte.
Schritt 1: Herausfinden, wo die Mail hängen bleibt
- Senden Sie eine Testnachricht über das Formular an eine Gmail-Adresse und an eine Adresse Ihrer eigenen Domain.
- Installieren Sie vorübergehend ein Plugin, das ausgehende Mails protokolliert, zum Beispiel „WP Mail Logging“. Steht die Mail dort, hat WordPress sie zumindest losgeschickt.
- Kommt nur bei Gmail nichts an, ist es fast sicher ein Absender- oder SPF/DKIM-Problem. Kommt nirgends etwas an, liegt es am Versand des Servers oder am Maildienst.
- Für einen genauen Befund schicken Sie eine Testmail an die Adresse, die Ihnen mail-tester.com anzeigt. Sie sehen dann, welche Prüfungen fehlschlagen.
Schritt 2: Versand über SMTP einrichten
Die zuverlässigste Lösung ist, WordPress über ein echtes Postfach Ihrer Domain verschicken zu lassen, so wie Ihr Mailprogramm auch. Dafür gibt es Plugins wie „WP Mail SMTP“, „FluentSMTP“ oder „Post SMTP“. Sie brauchen:
- ein Postfach Ihrer Domain, zum Beispiel
website@ihre-domain.de, - den SMTP-Server Ihres Mailanbieters aus dessen Hilfeseiten,
- Port 587 mit STARTTLS oder Port 465 mit SSL/TLS,
- Benutzername und Passwort des Postfachs.
Schicken Sie nach dem Einrichten über das Plugin eine Testmail und danach noch einmal eine Nachricht über das echte Formular.
Schritt 3: Absender und Antwortadresse richtig setzen
Im Formular gehört als Absender immer eine Adresse Ihrer eigenen Domain eingetragen, am besten dieselbe wie im SMTP-Plugin. Die Adresse des Besuchers kommt in das Feld „Antwort an“ (Reply-To). So können Sie in Ihrem Mailprogramm einfach auf „Antworten“ klicken und schreiben trotzdem an den Besucher. In Contact Form 7 sieht das so aus:
Von: Website <website@ihre-domain.de>
Zusätzliche Header: Reply-To: [your-email]
Schritt 4: SPF, DKIM und DMARC prüfen
Diese Einträge setzen Sie in der DNS-Verwaltung Ihrer Domain, meist im Kundenmenü des Hosters oder Domainanbieters.
- SPF: ein TXT-Eintrag auf der Domain, der mit
v=spf1beginnt und den Mailserver Ihres Anbieters erlaubt. Pro Domain darf es nur einen SPF-Eintrag geben. Zwei Einträge machen beide ungültig. - DKIM: wird beim Mailanbieter aktiviert. Er zeigt Ihnen einen Eintrag, den Sie im DNS hinterlegen.
- DMARC: ein TXT-Eintrag auf
_dmarc.ihre-domain.de. Für den Anfang reichtv=DMARC1; p=none; rua=mailto:dmarc@ihre-domain.de. Damit sammeln Sie Berichte, ohne dass Mails abgewiesen werden.
Ändern Sie diese Einträge vorsichtig. Ein falscher SPF-Eintrag kann dazu führen, dass auch Ihre normalen Mails aus dem Mailprogramm nicht mehr ankommen.
Schritt 5: Anfragen zusätzlich speichern
Selbst der beste Mailversand fällt einmal aus. Lassen Sie die Anfragen deshalb zusätzlich in WordPress speichern. Bei Contact Form 7 macht das das Zusatz-Plugin „Flamingo“, viele andere Formular-Plugins haben die Funktion eingebaut. Denken Sie dabei an den Datenschutz: Erwähnen Sie die Speicherung in der Datenschutzerklärung und löschen Sie alte Einträge regelmäßig.
Wann Sie Hilfe holen sollten
Wenn Sie nicht an die DNS-Einstellungen kommen, wenn nach einer Änderung auch Ihre normalen E-Mails Probleme machen oder wenn Sie nicht sicher sind, wie viele Anfragen schon verloren gegangen sind. Gerade bei Firmen, die über das Formular Aufträge bekommen, kostet jeder Tag ohne funktionierenden Versand bares Geld.
Professionelle Hilfe
Ich richte den Versand so ein, dass Anfragen zuverlässig ankommen: SMTP mit Ihrem Postfach, sauberer Absender, SPF, DKIM und DMARC, dazu eine Kopie jeder Anfrage in WordPress. Danach teste ich mit mehreren Mailanbietern. Das gehört zur WordPress-Reparatur ab 290 € netto. Soll sich jemand dauerhaft um Ihre Seite kümmern, gibt es die WordPress-Wartung.