./discourse-setup に渡す正しい設定は、localhost:25 上の SMTP サーバーに認証なしで接続するためには何でしょうか?
これは OOTB(初期状態)でサポートされていないことに非常に驚いています。これはほとんどの Linux インストールのデフォルト設定です。
私のサーバーはローカルで Postfix を実行しており、インターネットからはアクセスできません。例えば mail コマンドを実行する際には問題なく動作します。インターネット上でいくつかの非公式ガイドを見つけ、/var/discourse/containers/app.yml への変更を提案するものがあり、最終的に以下の設定でインストールと起動に成功しました。
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
なお、DISCOURSE_SMTP_USER_NAME または DISCOURSE_SMTP_PASSWORD 変数を省略すると、インストールスクリプトがそれらが必要であると叫びます(バグでしょうか?)。
そして、Discourse の WUI で「アクティベーションメールを再送信」ボタンをクリックすると、ログファイル(/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
…しかし、私の認証タイプは「none」です。認証なしの場合の正しい設定値は何でしょうか?
編集:また、「DISCOURSE_SMTP_*」変数とそれらの有効な値をすべて定義しているドキュメントへのリンクを教えてください。
編集2:これは本来あるべきよりもはるかに困難であることが証明されています。「localhost」が Docker コンテナ内部で、Postfix SMTP サーバーを実行している Docker ホストではなく、Discourse Docker コンテナ自体(app)に解決されていると思います。これは、Postfix の mynetworks や iptables(これらは discourse-setup スクリプトまたはその子スクリプトによって設定されました)によってもさらに複雑化しています。Discourse を実行したい SMTP サーバーを認証なしで使用する正しい設定は何でしょうか?