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'"

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.

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.

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

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!