アクティブ化メールの送信に問題あり

DigitalOcean のワンクリックアプリインストールで Discourse をインストールし、LetsEncrypt の HTTPS サポートを有効にしました。しかし、管理者用メールアドレスにアクティベーションメールが届きません。./discourse-doctor を実行したところ、「Email Send」のステップで以下のエラーが表示されます。

Net::ReadTimeout

Discourse はサブドメインでホストしており、メインサイト(メインドメイン)とメールサーバーは Hostgator にあります。メインドメインでは SPF と DKIM レコードが有効になっています。Hostgator のメールサーバーがサポートしているポート 465 で Discourse のメール送信設定を行いました。

何が問題なのか、ご教示いただけないでしょうか?

よろしくお願いいたします。

編集:ポート 587 で試したところ、./discourse-doctor は以下のような異なるエラーを表示します。

Sending mail failed.

更新:ポート 587 を使用し、app.yaml ファイルに以下の値を設定することで、アクティベーションメールの動作を確認できました。

DISCOURSE_SMTP_ENABLE_START_TLS: false

管理インターフェースにログインすると、以下の Sidekiq エラー(以前のもの?)が表示されました。

Jobs::HandledExceptionWrapper: Wrapped OpenSSL::SSL::SSLError: hostname “mail.mydomain.com” does not match the server certificate

DISCOURSE_SMTP_ENABLE_START_TLS を false に設定したことでこのエラーが消えたことは理解していますが、この方法で正しいのでしょうか?

こんにちは、@nparab さん、ようこそメタへ!:wave:

残念ながら、DigitalOcean が提供するワンクリックインストールはサポートできません。これは Discourse のセットアップにおける公式に推奨されている方法ではないためです。強くお勧めするのは、公式インストールガイド に従ってセットアップすることです。

このメッセージはそれ自体で意味が明確で、メールサーバーの設定が誤っていることを示しています。

しかし、以下のコマンドで接続すると:

openssl s_client -starttls smtp -crlf -connect mail.mydomain.com:587

正常に接続でき、実際にメールを送信することもできます。もしメールサーバーの設定が誤っているなら、このコマンドも動作しないはずです。そうではありませんか?

更新:以下のコマンドを実行すると:

openssl s_client -servername mail.mydomain.com -starttls smtp -crlf -connect mail.mydomain.com:587

mail.mydomain.com ではなく mydomain.com の証明書が返されます。

これがあなたが言及していた設定の誤りでしょうか?

現時点では、証明書が一致するように、app.yml ファイル内の DISCOURSE_SMTP_ADDRESS を mail.mydomain.com ではなく mydomain.com に設定しました。これにより何か問題が発生するでしょうか?