Outlook SMTP-Serverprobleme (SMTPSyntaxError)

Hallo zusammen!

Ich habe mich damit beschäftigt und versucht, eine selbst gehostete Instanz von Discourse auf einem CentOS-Server einzurichten. Zum größten Teil scheint alles gut zu sein, da ich den Hostnamen und andere Dinge konfiguriert habe und der Docker-Container startet und ich auf meine Discourse-Instanz in meinem lokalen Netzwerk unter http://discourse.foo.co zugreifen kann.

Hier bin ich jedoch etwas festgefahren, da ich meinen ersten Benutzer nicht erstellen kann, da die von mir verwendeten SMTP-Einstellungen anscheinend nicht funktionieren und ständig einen Net::SMTPSyntaxError auslösen, egal was ich versuche.

Meine SMTP-Einstellungen in der app.yml sind:

## TODO: Liste der per Komma getrennten E-Mails, die beim erstmaligen Anmelden zu Administratoren und Entwicklern gemacht werden
## Beispiel: 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'brian@foo.co'

  ## TODO: Der SMTP-Mailserver, der zum Überprüfen neuer Konten und zum Senden von Benachrichtigungen verwendet wird
  # SMTP-Adresse, Benutzername und Passwort sind erforderlich
  # WARNUNG: das Zeichen '#' im SMTP-Passwort kann Probleme verursachen!
  DISCOURSE_SMTP_ADDRESS: foo.mail.protection.outlook.com
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: user@foo.co
  DISCOURSE_SMTP_PASSWORD: ein Passwort, das einige Sonderzeichen '@' und '/' enthält. Das Passwort enthält nicht das Sonderzeichen '#'.
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_ENABLE_START_TLS: true         # (optional, Standard true)
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com    # (von einigen Anbietern erforderlich)
  DISCOURSE_NOTIFICATION_EMAIL: 'community@foo.co'    # (Adresse, von der Benachrichtigungen gesendet werden)

Ich habe überall in den Discourse-Foren nachgesehen, aber die Suche nach ‘SMTPSyntaxError’ liefert mir keine Ergebnisse. Bei Google finde ich auch keine Lösungen, die helfen.

Die gleichen SMTP-Einstellungen, wenn sie in unsere Bamboo- und Jira-Server eingegeben werden, funktionieren einwandfrei und können E-Mails problemlos senden.

Ich habe auch Online-Testtools wie https://dnschecker.org/smtp-test-tool.php verwendet und es kann Test-E-Mails problemlos senden. Zum Beispiel sendet die Eingabe der gleichen Details wie oben gezeigt eine Test-E-Mail mit folgendem Inhalt erfolgreich in meinen Posteingang.

SMTP-Host: foo.mail.protection.outlook.com.
Port: 25
Explizite TLS-Verschlüsselung verwenden: Nein
Implizite TLS/SSL-Verschlüsselung verwenden:
Authentifizierung verwenden: Nein
E-Mail von: test@foo.co
E-Mail an: brian@foo.co

Jede Hilfe wäre willkommen, danke,
Brian

Ich würde empfehlen, den Datenverkehr, der von Ihrem Container zum SMTP-Server fließt, zu protokollieren, damit Sie genau sehen können, was auf der Leitung passiert.

Sie können eine E-Mail auslösen, indem Sie im Container Folgendes ausführen:

rake 'emails:test[your.email.address@your.domain]'

und Sie sollten zum Beispiel Folgendes sehen:

root@michael-discourse-docker-app:/var/www/discourse# rake 'emails:test[michael@contoso.com]'
Testing sending to michael@contoso.com using mail.contoso.net:587, username:michael with plain auth.
SMTP server connection successful.
Sending to michael@contoso.com. . .
Mail accepted by SMTP server.
Message-ID: e7adb5c4-f404-4800-b070-631b06ff5335@mx1.contoso.com

Was Ihnen auch einige Hinweise geben könnte.

3 „Gefällt mir“

Hallo Michael,

Vielen Dank für deinen Vorschlag, aber er scheint denselben Fehler zu ergeben, den ich auch erhalte, wenn ich ./discourse-doctor verwende.

root@discourse-app:/var/www/discourse# rake 'emails:test[brian.lui@foo.co]'
Testing sending to brian.lui@foo.co using foo.mail.protection.outlook.com:25, username:user@foo.co with login auth.
======================================== ERROR ========================================
                                    UNEXPECTED ERROR

Net::SMTPSyntaxError

====================================== SOLUTION =======================================
Dies ist kein häufiger Fehler. Es gibt keine empfohlene Lösung!

Bitte melde die genaue Fehlermeldung oben unter https://meta.discourse.org/
(Und eine Lösung, falls du eine findest!)
=======================================================================================

Brian

Wenn ich den Befehl im Container ausführe (wie in der Discourse SMTP-Fehlerbehebungsanleitung beschrieben):

openssl s_client -connect foo.mail.protection.outlook.com:25 -starttls smtp

Sieht alles normal aus, aber anstelle von 250 DSN sehe ich 250 SMTPUTF8. Wenn ich dann versuche, den Befehl EHLO "i am here" einzugeben, passiert nichts und ich bekomme schließlich eine Zeitüberschreitung:

451 4.7.0 Timeout waiting for client input [YT1PEPF00001E8C.CANPRD01.PROD.OUTLOOK.COM 2024-02-23T17:51:16.770Z 08DC342D15BDD245]\nread:errno=0

Ich erhalte dasselbe Ergebnis.

Ich habe keine wirklichen Vorschläge, außer dass dies ein Problem mit dem Mailserver selbst und nicht mit Discourse zu sein scheint.

Ich würde nicht erwarten, dass dieser Server für die Mail-Übermittlung verwendet wird. Sind Sie sicher, dass dies korrekt ist?

Ich sehe, dass andere Leute einen anderen Übermittlungsserver verwendet und dies zum Laufen gebracht haben:

2 „Gefällt mir“