Obwohl ich glaube, dass der Fehler von @kvsf entweder bereits behoben wurde oder einige grundlegende Dinge in Ihrer Konfiguration geändert wurden, möchte ich diesen Thread fortsetzen, indem ich meine eigene Konfiguration, meinen weiteren Ansatz und meine Bitte um Hilfe im selben Problembereich poste.
Grundlegende Konfiguration
- Google Workspace Business Starter
- Gmail-Routing konfigurieren > SMTP-Relay mit i) nur registrierten Benutzern aus der Domäne, ii) IP-Whitelisting mit der IP meines Foren-Hosting-Servers und Erzwingung der SMTP-Authentifizierung, iii) Erzwingung von TLS
- Discourse Docker-Installation gemäß Discourse-Dokumentation
app.yml-Konfiguration gemäß
expose:
- "80:80" # http
- "443:443" # https
env:
DISCOURSE_HOSTNAME: "forum.mydomain.com"
DISCOURSE_DEVELOPER_EMAILS: 'dev@mydomain.com'
DISCOURSE_SMTP_ADDRESS: "smtp-relay.gmail.com"
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "user@mydomain.com"
DISCOURSE_SMTP_PASSWORD: "mypass"
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_OPEN_TIMEOUT: 25
DISCOURSE_SMTP_READ_TIMEOUT: 25
DISCOURSE_SMTP_DOMAIN: "mydomain.com"
DISCOURSE_NOTIFICATION_EMAIL: "noreply@mydomain.com"
LETSENCRYPT_ACCOUNT_EMAIL: dev@mydomain.com
Meine Tests
Beim Ausführen von ./discourse-doctor führt diese Konfiguration zu dem Fehler:
Testing sending to ...
SMTP server connection successful.
Sending to artificial.testadress@gmail.com. . .
Sending mail failed.
end of file reached
Ich habe dann zuerst die verschiedenen Discourse- und E-Mail-Protokolle überprüft.
Der manuelle Test desselben Prozesses von innerhalb von Docker (durch Verbindung mit docker exec -it <CONTAINER_ID> bash) über
openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:587
tritt keine Probleme auf und funktioniert einwandfrei. Ich glaube daher, dass entweder meine Parameterkonfiguration in der app.yml seltsam ist ODER Discourse intern eine Skript-Fehlkommunikation hat ODER … so viele Möglichkeiten. ^^
Um nicht immer ./launcher rebuild app ausführen zu müssen, nachdem ich app.yml geändert habe, um verschiedene Einstellungen zu testen, habe ich begonnen, /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb direkt zu bearbeiten, indem ich den vorhandenen Code zu:
class SMTP
attr_accessor :settings
DEFAULTS = {
:address => 'smtp-relay.gmail.com',
:port => 587,
:domain => 'mydomain.com',
:user_name => 'user@mydomain.com',
:password => 'mypass',
:authentication => 'login',
:enable_starttls => nil,
:enable_starttls_auto => true,
:openssl_verify_mode => 'peer',
:ssl => nil,
:tls => nil,
:open_timeout => 25,
:read_timeout => 25
}
def initialize(values)
self.settings = DEFAULTS #.merge(values)
end
was zum gleichen Verhalten wie oben führt (bei den angepassten app.yml-Einstellungen).
Suche nach Hilfe
Und jetzt stecke ich fest. Natürlich könnte ich mehr mit den verbleibenden Einstellungen spielen (und könnte sogar wieder auf die ausschließliche Verwendung von SSL umsteigen, obwohl dies von Discourse als veraltet gilt), aber ich möchte:
- lernen, wie man dieses Problem tiefer und weiter analysiert
- dadurch verstehen, was wirklich vor sich geht und was das Problem ist
- es beheben und alles reibungslos nutzen können (+ endlich das Forum richtig zum Laufen bringen)
Vielen Dank im Voraus für Ihre Hilfe.