Die Email kann nicht gesendet werden. Wenden Sie sich an den Site-Administrator, wenn das Problem weiterhin besteht

8

Wenn mein Webformular ausgefüllt und gesendet wird, werde ich auf eine Seite weitergeleitet, auf der Folgendes steht:

Vielen Dank für die Einreichung.

aber es gibt dort eine rote Warnbox, die sagt:

Die Email kann nicht gesendet werden. Wenden Sie sich an den Site-Administrator, wenn das Problem weiterhin besteht.

Ich denke, es ist der SMTP-Server, aber ich weiß nicht, wie ich das beheben soll.

Saadlulu
quelle

Antworten:

12

Versuchen Sie es mit:

SMTP-Authentifizierungsunterstützung

mit PHPMailer

Wenn Sie STMP mit Google Mail einrichten, gehen Sie folgendermaßen vor:

  1. SMTP-Server: smtp.gmail.com
  2. SMTP-Port: 465
  3. Verschlüsseltes Protokoll verwenden: Verwenden Sie SSL
  4. SMTP-Authentifizierung - Ihr Benutzername und Passwort
  5. Belassen Sie die anderen Optionen standardmäßig
Ivailo Milenkov
quelle
2

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 localhoststandardmäß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_systemVariablen, 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, SMTPHost und smtp_portrichtig sind,
  • Überprüfen Sie die Konnektivität zu Ihrem SMTP-Server, indem Sie telnetz

    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_sendmailauf1 ( 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.

Kenorb
quelle
1

Überprüfen Sie Ihre Drupal Watchdog- und PHP-Fehlerprotokolle. Möglicherweise handelt es sich um Protokollierungsfehler, mit denen Sie herausfinden können, wo das Problem liegt. Erkundigen Sie sich außerdem bei Ihrem Systemadministrator, ob die von Ihnen verwendeten Anmeldeinformationen für den SMTP-Server gültig sind (z. B. Adresse, Port, Verschlüsselung, Kennwort usw.).

Amateur Barista
quelle
1

Wenn es ausreicht, nur zu sehen, was gesendet wird, ist das Maillog-Modul sehr praktisch.

BetaRide
quelle
1

Ich war aufgrund eines Problems mit der Amazon SES-Sandbox in dieses Problem verwickelt. Mit Amazon SES können Sie im Sandbox-Modus keine E-Mails an nicht verifizierte Domains senden. Sie müssten einen Produktionszugriff beantragen, und das Problem wird behoben.

Mansoor Ahmed
quelle
0

Die folgenden Einstellungen haben bei mir unter Windows funktioniert.

Wenn Sie STMP mit Google Mail einrichten, gehen Sie folgendermaßen vor:

SMTP-Server: smtp.gmail.com

SMTP-Port: 465

Verschlüsseltes Protokoll verwenden: Verwenden Sie SSL

SMTP-Authentifizierung - Ihr Google Mail-Benutzername und Ihr Kennwort

Belassen Sie die anderen Optionen standardmäßig

Nayana
quelle
0

Die akzeptierte Antwort hat dieses Problem gelöst. Beachten Sie jedoch, dass Google Mail zum Zeitpunkt dieses Beitrags alle weniger sicheren Anwendungen blockiert , da Ihre Drupal-Site nicht mit HTTPS ausgeführt wird.

  1. Dann müssen Sie weniger sichere Anwendungen in "Mein Konto" von Google Mail zulassen

    • Mein Konto> Verbindung und Sicherheit> Weniger sichere Anwendungen zulassen
    • Oder folgen Sie dem Link in der Warn-E-Mail, die Sie von Google Mail erhalten haben, als Sie versucht haben, eine Verbindung mit dem SMTP-Modul herzustellen
  2. Oder holen Sie sich ein SSL-Zertifikat für Ihre Drupal-Site.

The-Vinh VO
quelle
0

Auf denselben gemeinsam genutzten Hostings Sie können keine E-Mails senden, ohne eine E-Mail für den Webmaster zu erstellen. Zum Beispiel. Wenn Sie die Domain test.com haben, müssen Sie in Ihrem Cpanel eine E-Mail an [email protected] oder [email protected] erstellen und diese E-Mail als primäre E-Mail-Adresse der Website festlegen. Diese E-Mail befindet sich in Ihrer E-Mail im Feld "Von". Oder erstellen Sie eine eigene Mail für die Domain und legen Sie diese Mail als primäre Mail für die Site fest. Dies hängt von den Sicherheitseinstellungen für Shared Hosting ab.

Andrew Kozoriz
quelle
0

Schritt 1: Sie können SMTP einstellen. Schritt 2: Befehlsleitung offener Port 465 "-A INPUT -p tcp --dport 465 -j ACCEPT"

Quan Lee
quelle
0

Falls es jemand anderem hilft:

Ich habe diesen Fehler erhalten und festgestellt, dass Cc und Bcc in meinen drupal_mail-Headern auf dieselbe E-Mail-Adresse eingestellt waren. (das war, weil ich getestet habe)

Angus Walker
quelle