Welche sind die korrekten Einstellungen für ./discourse-setup, um eine Verbindung zu einem SMTP-Server auf localhost:25 ohne Authentifizierung herzustellen?
Ich bin sehr überrascht, dass dies nicht standardmäßig (OOTB) unterstützt wird; es ist die Standardkonfiguration bei den meisten Linux-Installationen.
Mein Server führt lokal Postfix aus; er ist nicht aus dem Internet erreichbar. Er funktioniert beispielsweise einwandfrei, wenn ich den Befehl mail ausführe. Ich habe ein paar inoffizielle Anleitungen im Internet gefunden, die Änderungen an /var/discourse/containers/app.yml vorschlagen, und ich habe es schließlich geschafft, es mit den folgenden Einstellungen zu installieren und zu starten:
DISCOURSE_SMTP_ADDRESS: localhost
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: discourse@opensouceecology.org
DISCOURSE_SMTP_PASSWORD: "none"
DISCOURSE_SMTP_AUTHENTICATION: none
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_ENABLE_START_TLS: false
Beachten Sie, dass das Installationsskript mich anschreit und sagt, dass die Variablen DISCOURSE_SMTP_USER_NAME oder DISCOURSE_SMTP_PASSWORD erforderlich sind, wenn ich sie weglasse (Bug?).
Und wenn ich jetzt auf die Schaltfläche „Aktivierungs-E-Mail erneut senden" in der Discourse-WUI klicke, erscheint dieser Eintrag in der Protokolldatei (/var/discourse/shared/standalone/log/rails/production.log):
Started PUT "/finish-installation/resend-email" for 127.0.0.1 at 2019-11-07 13:15:31 +0000
Processing by FinishInstallationController#resend_email as HTML
Parameters: {"authenticity_token"=>"SzQCvRWiqdXsBKzOjIB0X7KkvXro7Od6SdP8Qa8vvrskPeNYZNos5ORHJfyDUrHiKShZR/txM6NHuqHHCQCR1w=="}
Rendering finish_installation/resend_email.html.erb within layouts/finish_installation
Rendered finish_installation/resend_email.html.erb within layouts/finish_installation (Duration: 0.7ms | Allocations: 103)
Rendered layouts/_head.html.erb (Duration: 0.5ms | Allocations: 103)
Completed 200 OK in 98ms (Views: 3.0ms | ActiveRecord: 0.0ms | Allocations: 4763)
Rendering layouts/email_template.html.erb
Rendered layouts/email_template.html.erb (Duration: 0.5ms | Allocations: 141)
Delivered mail c4ca58ca-345e-46c4-81bc-6d0eac7afa04@discourse.opensourceecology.org (11.3ms)
Job exception: wrong authentication type none
…Aber mein Authentifizierungstyp ist doch ‘none’. Was ist die korrekte Einstellung für keine Authentifizierung?
EDIT: Kann mir jemand außerdem das Dokument verlinken, das alle möglichen „DISCOURSE_SMTP_*"-Variablen und alle ihre gültigen Werte definiert?
EDIT2: Dies erweist sich als weitaus schwieriger, als es sein sollte. Ich vermute, dass „localhost" innerhalb des Docker-Containers auf den Discourse-Docker-Container selbst (app) aufgelöst wird – und nicht auf den Docker-Host, auf dem mein Postfix-SMTP-Server läuft. Das wird weiter durch Postfixs mynetworks und iptables (die vom discourse-setup-Skript oder seinen Kindskripten konfiguriert wurden) kompliziert. Was ist hier die korrekte Konfiguration, damit Discourse einfach den SMTP-Server verwendet, auf dem ich Discourse ausführen möchte, ohne SMTP-Authentifizierung?