Ubuntu 20.04のクリーンなセルフホストインストールで管理者アクティベーションEメールが送信されない

ついにこの問題を解決できました。

原因は、Discourse がデフォルトで使用する送信者メールアドレスでした。これはセットアップ時に設定されたホスト名(私の場合は v220200xxxxxxxxxxxx.powersrv.de のようなもの)から作成され、noreply@v220200xxxxxxxxxxxx.powersrv.de という送信者アドレスになります。これが SMTP サーバーに拒否されてしまっていたのです。

なぜこのようなフレンドリーでないホスト名を使用しているのでしょうか?既存のサーバーを置き換えるためのサーバーだからです。既存のサーバーは、成長した Discourse コミュニティには容量不足になってしまっています。DNS 設定を切り替えて新しいサーバーを本格的に使用するのは後で行う予定で、今は新しいサーバーの準備とテストを行っています。ここでは一時的なフレンドリーな DNS 設定を作成する時間を節約したかったのです。

問題を解決する方法は?
app.yml の末尾にある以下の行を探してください。

## If you want to set the 'From' email address for your first registration, uncomment and change:
## After getting the first signup email, re-comment the line. It only needs to run once.

最後の行のコメントアウトを解除し、SMTP サーバーが有効な送信者として受け入れるアドレスに合わせて変更してください。例:
- exec: rails r "SiteSetting.notification_email='USER@DOMAIN.TLD'"

その後、./launcher rebuild app を実行して変更を反映させます。これで完了です。アクティベーションメールが送信され、管理者アカウントをアクティベートしてセットアップを完了できます。

どのようにして原因を特定したのでしょうか?
ウェブスペースプロバイダーで新しいメールアカウントを作成し、その SMTP 認証情報を使って Discourse のセットアップを再度行いました。期待通りにアクティベーションメールが届いたので、SMTP 設定(Ubuntu / Docker / Discourse のセットアップそのものではない)に問題があることがわかりました。
この別の SMTP サーバーを使って管理者アカウントをアクティベートした後、[設定] > [メール] > [スキップ] に移動すると、アクティベーションメールの送信失敗ログが見つかりました:553 5.7.1 <noreply@v220200xxxxxxxxxxxx.powersrv.de>: Sender address rejected: not owned by user USER@DOMAIN.TLD

結論
Discourse 開発チームに、機能リクエスト Suggestion - allow optional system email “from” setting during setup について注意を喚起したいです。実際のインスタンスのアップグレード前にテストを実行する際(例えばコピーを作成してテストする場合など)に、フレンドリーなホストアドレスが存在しない環境でのインストールも考慮してください。app.yml を編集しなくても、よりスムーズにセットアップできるようになるはずです。また、私の意見では、管理者に Discourse ホスト名に紐付かないメールアドレスを使用する選択肢を与えることは良いことだと思います。

ありがとうございます :slight_smile:

また、コードブロックの投稿方法について教えてくださった @codinghorror にも感謝します。

「いいね!」 4