Hilfe! WordPress sendet keine E-Mails mehr
WordPress verwendet standardmäßig zum Versenden von E-Mails die PHP-Funktion mail(). Wer Kontakt-Formulare oder andere Plugins auf seiner WordPress Webseite erfordern, die den Versand von E-Mails notwendig machen, wird in der Regel von dieser Funktionalität profitieren.
Doch manchmal kann es passieren, dass der Hosting-Anbieter – aus welchen Gründen auch immer – mail() in den PHP-Einstellungen deaktiviert, so dass von einem Tag auf dem anderen keine E-Mails mehr aus WordPress versendet werden können.
Da in solch einem Fall weder eine Fehlermeldung noch sonstiger Hinweis erscheint, kann es im worst case viele Tage dauern bis der Fehler überhaupt erkannt wird.
Und das Allerschlimmste: Alle Anfragen, die Nutzer während dieser Zeit auf der Webseite via WordPress-Formular getätigt haben, sind für immer futsch!
Woran erkenne ich, ob die PHP-Funktion mail() aktiv ist?
Um zu überprüfen, ob diese wichtige Funktion aktiv ist, kopiere das folgende PHP-Script.
[code]
<?php if (mail(‚empfaenger-email@deine-domain.de‘, ‚test‘, ‚test‘, ‚From: absender-email@deine-domain.de‘))
{echo ‚<span style="color:#059624">✔</span><br>‘;
}else{
echo ‚<span style="color:#e57922">✖</span><br>‘;
}
?>
[/code]
Öffne anschließend den Text-Editor und füge das Script ein. Trage in empfaenger-email@deine-domain.de und absender-email@deine-domain.de eigene Angaben ein. Speichere das Ganze nun mit dem Text-Editor als php_mail_info.php in ANSI-Codierung ab und lade die Datei auf dem Server in das Hauptverzeichnis hoch.
Jetzt brauchst du nur noch die Datei mit dem Browser aufzurufen unter https://www.deine-domain.de/php_mail_info.php. Erscheint ein Häkchen, ist die Funktion aktiv und du erhälst eine E-Mail mit Test-Betreff. Siehst du allerdings ein Kreuz, ist die PHP-Funktion mail() deaktiviert worden.
PHP mail() ist aktiv, aber trotzdem sendet WordPress keine E-Mails mehr?
Der Test, ob mail() aktiv oder inaktiv ist, kann lediglich als ein Indiz angesehen werden, wie auch robo47 in seinem Beitrag auf PHP.de-Forum anmerkt: „Nur dass die Funktion da ist, sagt aber noch lange nicht aus, dass man darüber überhaupt eine Email versenden kann, was sich auch nicht wirklich vernünftig überprüfen lässt, ohne zu versuchen eine Email zu senden, eventuelle Fehler abzufangen und danach auch noch das Postfach der Emailadresse, an die man gesendet hat, abrufen und schauen ob die Mail angekommen ist.“
Die Lösung: E-Mails versenden über SMTP Plugin statt PHP-Funktion mail()
Um also wirklich sicher zu gehen, dass jede E-Mail korrekt und dauerhaft via WordPress versendet werden kann, empfehle ich das Plugin WP-Mail-SMTP. Mithilfe dieses Plugins wird der Versand via SMTP geregelt, so dass ein Ausfall der PHP Funktion mail() keine Nachteile mehr hat.
Nach der Installation des Plugins lassen sich die SMTP-Daten unter Einstellungen > Email eingeben (siehe Screenshot links). Wichtig: Unbedingt ein Häkchen setzen bei „Send all WordPress emails via SMTP“. Soll der Absender der E-Mail (wird in From Email hinterlegt) auch als Absender der automatisch durch WordPress erzeugten E-Mails angezeigt werden, bitte „Set the return-path to match from Email“ anhaken.
Sollten dir keine SMTP-Daten vorliegen, kannst du diese bei deinem Hosting-Anbieter anfragen.
Quellen