Der Fehler:
Die Email kann nicht gesendet werden.
kommt von drupal_mail () und wird als sehr allgemein angesehen. Es kann sich auf viele verschiedene Dinge beziehen, wie z. B. eine Fehlkonfiguration Ihrer Drupal-Site, eine PHP-Konfiguration oder einen SMTP-Dienst Ihres Betriebssystems.
Das erste, was Sie tun müssen, ist, das Mail-System oder die Apache-Protokolle (z. B. /var/log/apache2/error.log
) auf weitere Details zu dem Fehler zu überprüfen , da Sie ihn möglicherweise selbst vermissensendmail
(es sei denn, Sie möchten einen externen SMTP-Dienst verwenden).
Wenn Ihr Drupal auf Ihrem dedizierten Server gehostet wird und es sich um eine brandneue Konfiguration handelt, fehlt höchstwahrscheinlich der SMTP-Server (da localhost
standardmäßig darauf verwiesen wird), es sei denn, Sie planen die Verwendung des externen Servers .
Wenn es sich um Ihren lokalen Entwicklungscomputer handelt, ignorieren Sie entweder den Fehler (da er auf dem dedizierten Server einwandfrei funktionieren sollte), installieren Sie MailCatcher , oder Sie müssen den SMTP-Server wie oben angegeben installieren.
Hier sind einige andere Vorschläge:
- Wenn Sie das SMTP-Modul verwenden , überprüfen Sie, ob Sie es richtig konfiguriert haben (siehe README-Datei ), einschließlich der richtigen Servereinstellungen .
- Überprüfen Sie den Wert der
mail_system
Variablen, falls diese überschrieben wurde. Setzen Sie ihn auf den Standardwert ( drush vdel mail_system
) zurück.
- überprüfen Sie Ihre PHP - Mail - Konfiguration (
php -i | grep -ie mail -e smtp
) und bestätigen , dass sendmail_path
, SMTP
Host und smtp_port
richtig sind,
Überprüfen Sie die Konnektivität zu Ihrem SMTP-Server, indem Sie telnet
z
telnet $(php -r 'echo ini_get("SMTP") . " " . ini_get("smtp_port");')
um zu überprüfen, ob der Host nicht inaktiv, vom DNS aufgelöst oder nicht von der Firewall blockiert ist,
Wenn Sie verwenden postfix
, überprüfen Sie, ob httpd_can_sendmail
auf1
( setsebool httpd_can_sendmail 1
) gesetzt ist.
Testen Sie Ihre E-Mail abschließend mit dem folgenden PHP-Befehl:
php -r 'mail("[email protected]", "Mail test", "It works!");'
und überprüfen Sie diese Seite, wenn die E-Mail empfangen wurde.