Ich verwende Apache 2.2.25 und PHP 5.3.28 in meinem Windows 8 Desktop. Als ich mein Wordpress-Passwort wiederhergestellt habe, habe ich diesen Fehler erhalten:
Die E-Mail konnte nicht gesendet werden. Möglicher Grund: Ihr Host hat möglicherweise die Funktion mail () deaktiviert.
Ich habe es gegooglet, dass, wie ich die mail () -Funktion aktivieren kann, gefunden, dass ich einen Mail-Server mit meinem Server konfigurieren muss. Ich habe hMailServer heruntergeladen, aber es hat nicht funktioniert ... Bitte helfen Sie mir, wie kann ich mail () -Funktion aktivieren? Welchen Mailserver muss ich herunterladen?
Wie ich hier gepostet habe :
Dies ist eine super ärgerliche Fehlermeldung, da es viele Dinge sein können, und es zeigt nicht den tatsächlichen Fehler (der oft in anderen Teilen des Codes zum Schweigen gebracht wird).
Dieser Fehler tritt auf, wenn die wp_mail()
-Funktion false zurückgibt, was wiederum passieren könnte, wenn phpmailer->Send()
false zurückgibt oder eine Ausnahme auslöst.
mail()
Funktion Diese sind normalerweise standardmäßig stummgeschaltet, und WordPress fängt sie leider nicht ein. Um sie anzuzeigen, entfernen Sie einfach die Zeichen @
von @mail(...
in wp-includes/class-phpmailer.php
in der Funktion mailPassthru()
:
Fügen Sie am unteren Rand von wp_mail()
in /wp-includes/pluggable.php
:
Es werden die vollständigen Details der Position ausgegeben, an der die Ausnahme ausgelöst wurde. Leider enthält es manchmal diese nicht hilfreiche Ausnahmebedingungsnachricht: " Mail-Funktion konnte nicht instanziiert werden ". Ja danke WordPress, das ist wirklich hilfreich.
Wenn Sie sich die Ausnahme ansehen, können Sie die Zeilennummer des Fehlers finden und sie hoffentlich durch den Code zurückverfolgen, um den wahren Grund zu finden.
Viel Glück. Hoffentlich verbessert WordPress die E-Mail-Fehlerbehandlung irgendwann in der Zukunft.
Ich stieß auf das gleiche Problem und nichts, was ich in einem der Vorschläge für WordPress finden konnte, löste es für mich.
Dann habe ich angefangen zu untersuchen, ob es die PHP-Installation selbst war, die die Mail-Funktion deaktiviert hat, aber das hat auch nicht funktioniert. Alles sah so aus, als wäre es richtig konfiguriert.
All diese Probleme begannen für mich, nachdem ich meinen Server auf CentOS 7 aufgerüstet habe, das SELinux (Security Enhanced Linux) verwendet, und was ich in den letzten Wochen mit SELinux gelernt habe, ist, dass wenn etwas nicht funktioniert, aber alles sieht so aus, als müsste es funktionieren ... das heißt, dass SELinux dich still und heimlich im Hintergrund blockiert.
Und Viola.
Wenn Sie arbeiten und ein Betriebssystem, das SELinux verwendet, führen Sie einfach den folgenden Befehl als root aus:
setsebool -P httpd_can_sendmail=1
Es gibt eine Sicherheitseinstellung, die verhindert, dass der Webserver E-Mails sendet. Wenn Sie diesen Schalter umdrehen und SELinux mitteilen, dass der Webserver E-Mails senden kann, funktioniert alles plötzlich.