Ich habe ein ähnliches Problem. Gestern habe ich drei Stunden lang den E-Mail-Versand auf einer neuen Discourse-Instanz ohne Erfolg debuggt. Ich versuche, E-Mails über Fastmail mit STARTTLS über Port 587 zu senden. Andere Dienste funktionieren mit denselben Anmeldeinformationen.
Ich erhalte bei diesen Einstellungen nicht die Fehlermeldung „Must issue a STARTTLS command first“:
DISCOURSE_SMTP_ADDRESS: 'smtp.fastmail.com'
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: 'myuser@fastmail.fm'
DISCOURSE_SMTP_PASSWORD: 'mypass'
DISCOURSE_SMTP_ENABLE_START_TLS: true
…gefolgt von einem ./launcher rebuild app. Wenn ich ./discourse-doctor ausführe und eine E-Mail sende, erhalte ich als Antwort einen Fehler 500 5.5.1 Invalid command.
Heute habe ich begonnen, die Kommunikation mit tcpdump zu verfolgen, und festgestellt, dass Discourse STARTTLS anscheinend nicht verwendet. Hier ist, was passiert, wenn ich eine Grafana-Wiederherstellungs-E-Mail sende:
< 220 smtp.fastmail.com ESMTP ready
> EHLO 9b5ba1569f77
< 250-smtp.fastmail.com
< 250-PIPELINING
< 250-SIZE 71000000
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> STARTTLS
< ...[encrypted]
Aber mit Discourse passiert Folgendes:
< 220 smtp.fastmail.com ESMTP ready
> EHLO localhost
< 250-smtp.fastmail.com
< 250-PIPELINING
< 250-SIZE 71000000
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> AUTH PLAIN [redacted]
< 500 5.5.1 Invalid command
Es scheint also, dass Discourse meine Anmeldeinformationen im Klartext über das Internet sendet, obwohl STARTTLS in den Einstellungen aktiviert ist? Ist das ein Fehler?
Ich habe auch festgestellt, dass beim Ausführen von ./discourse-doctor die Zusammenfassung „YML SETTINGS“ am Anfang Folgendes auflistet:
==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.[redacted]
SMTP_ADDRESS=smtp.fastmail.com
DEVELOPER_EMAILS=sysadmin@[redacted]
SMTP_PASSWORD=[redacted]
SMTP_PORT=587
SMTP_USER_NAME=[redacted]@fastmail.fm
LETSENCRYPT_ACCOUNT_EMAIL=
Es gibt jedoch keine Erwähnung von DISCOURSE_SMTP_ENABLE_START_TLS, obwohl es in app.yml gesetzt ist. Ich bin mir nicht sicher, ob dieses Problem damit zusammenhängt.