E-Mail-Versand funktioniert nicht

Mein DigitalOcean Discourse Droplet kann keine E-Mails versenden. Die Fehlermeldung lautet:

Delivered mail d8f9bf03-a3ce-4b42-8226-fc4f40a9c724@foo.barbar.com (5099.4ms)

Job exception: 504 5.7.4 Unrecognized authentication type [BL0PR0102CA0036.prod.exchangelabs.com]

Meine Einstellungen sind:

  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: foo@bar.com
  DISCOURSE_SMTP_PASSWORD: "mypassword"
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)

Ich habe einen Telnet-Test vom Droplet aus durchgeführt, und es treten keine Fehler auf:
telnet smtp.office365.com 587

Was könnte das Problem sein? Ich habe die SMTP-Einstellungen-Kombination lokal mit Python getestet, und das funktioniert. Daher gehe ich davon aus, dass dies nicht das Problem ist.

Hallo,
versuchen Sie, Folgendes hinzuzufügen:

  DISCOURSE_SMTP_AUTHENTICATION: login

Und am Ende von app.yml:

 - exec: rails r "SiteSetting.notification_email='foo@bar.com'"
1 „Gefällt mir“

Hallo mik
Die exec-Anweisung ist fehlgeschlagen:

FEHLGESCHLAGEN

--------------------

Pups::ExecError: rails r "SiteSetting.notification_email='foo@bar.com'"` ist fehlgeschlagen mit Rückgabewert #<Process::Status: pid 2229 exit 2>

Ort des Fehlers: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec ist mit den Parametern "rails r \"SiteSetting.notification_email='foo@bar.com'\"`" fehlgeschlagen

9628e31c775b74ad0f3a555b6af27701aa40b1f8b86419fa44a7c389cc5e34ae

** BOOTSTRAP FEHLGESCHLAGEN ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen; es kann mehr als eine geben.

./discourse-doctor kann bei der Diagnose des Problems helfen.

Das Entfernen des Befehls exec und das Hinzufügen von:

  DISCOURSE_SMTP_AUTHENTICATION: login

führt nicht zu einem Fehler. Ich erhalte lediglich:
Delivered mail be6d8718-5445-48cc-a120-6d6d1eab9eb7@discourse.bar.com (4307.2ms)

Aber ich bekomme immer noch keine E-Mail in meinem Posteingang (ich habe auch den Spam-Ordner geprüft).

Sie können dies ausprobieren, um die richtige Konfiguration zu finden und möglicherweise eine Fehlermeldung zu erhalten:

docker exec -t -i id_of_your_container /bin/bash

Dann innerhalb des Containers:

apt install s-nail
echo "This is the message body and contains the message" | s-nail -r "foo@bar.com" -s mysubject -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore youremail@example.com

Sie können die verschiedenen Werte (z. B. smtp-auth=login) ändern, um die richtige zu finden. Vielleicht erhalten Sie dann eine genauere Fehlermeldung.

2 „Gefällt mir“
echo "Dies ist der Nachrichtentext und enthält die Nachricht" | s-nail -r "foo@bar.com" -s mysubject -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore youremail@example.com

Das hat funktioniert und ich habe die E-Mail erhalten! Ich musste die smtp-auth-password=“xxxxxxxx” jedoch in einfache Anführungszeichen setzen, da mein Passwort mit einem ‘!’ beginnt.

Der einzige Unterschied, den ich in meiner Konfiguration sehe, ist dieser Flag:
-S ssl-verify=ignore

Muss ich diesen auch hinzufügen?
Danke für deine Hilfe!

Füge Folgendes hinzu:

DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

In deiner Konfiguration ist dies dasselbe wie ssl-verify=ignore.

Keine Fehler, aber immer noch keine E-Mail im Posteingang :frowning: Um zusammenzufassen, so lautet meine aktuelle Konfiguration:

  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: info@foo.com
  DISCOURSE_SMTP_PASSWORD: 'xxx'
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, Standard: true)
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

Bitte versuche es erneut hinzuzufügen (es ist identisch mit der Option „-r

Ich habe dieses Problem ebenfalls. Ich habe auf Digital Ocean einen Droplet mit Discourse eingerichtet. Ich habe den Befehl sudo ./discourse-doctor ausgeführt, nachdem ich alle diese Vorschläge ausprobiert und jedes Mal neu aufgebaut habe (sudo ./launcher rebuild app).

504 5.7.4 Unrecognized authentication type [BL0PR01CA0015.prod.exchangelabs.com]

s-nail innerhalb des Containers hat bei mir ebenfalls problemlos funktioniert. Ich habe es auch ohne den Abschnitt -S ssl-verify=ignore ausprobiert, und das hat ebenfalls funktioniert. Kann jemand bestätigen, dass die auf dem Digital Ocean Droplet installierte Version E-Mails korrekt versendet?

Ermitteln Sie bei Ihren E-Mail-Administratoren, welche gültigen Werte für smtp_authentication existieren, und setzen Sie DISCOURSE_SMTP_AUTHENTICATION auf einen funktionierenden Wert.

1 „Gefällt mir“

Vielen Dank für all die Hilfe. Ich habe es aufgegeben und zu einer anderen Forumslösung gewechselt.

1 „Gefällt mir“

Es handelt sich um Microsoft. Deren Anweisungen lauten wie folgt, es wird keine smtp_authentication angegeben:

  • SMTP-Servername: smtp.office365.com
  • SMTP-Port: 587
  • SMTP-Verschlüsselungsmethode: STARTTLS

Unterstützen Sie diesen Servertyp nicht? Können Sie einfach ein Konto erstellen, eine Verbindung dazu herstellen und uns mitteilen, welche Einstellungen erforderlich sind?

DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

Das hat mein Problem gelöst, danke!

1 „Gefällt mir“