最初の登録メールの返信コードが失われました

最新の Docker イメージでインストールされた最初の登録メールについて、私の SMTP サーバーは以下のように応答しています:

予期しない戻りコード 550(250 が期待されていました):
「アクセス拒否:ユーザー `arn:aws:iam::[acct]:user/[user]' は、リソース `arn:aws:ses:us-west-1:[acct]:identity/[identity]' に対して `ses:SendRawEmail' を実行する権限がありません」

しかし、Discourse のログファイル production.log には以下が表示されています:

Started PUT "/finish-installation/resend-email" for [ip] at 2020-11-16 20:58:10 +0000
Processing by FinishInstallationController#resend_email as HTML
  Parameters: ...
Completed 200 OK in 23ms (Views: 6.4ms | ActiveRecord: 0.0ms | Allocations: 6023)
...
Delivered mail [randid]@[hostname] (191.3ms)

ウェブサイト、少なくともログは成功メッセージではなくエラーを返すべきだと私は考えます。

よろしくお願いいたします、
Jeff

「いいね!」 1

一般的に、メールはバックグラウンドキューで送信されるため、ユーザーには見えません。

ただし、ウィザードをもう少し派手で、失敗を明確に知らせるものにすることは検討しています。その場合、サーバーをポーリングして状態を確認する必要があります。これはおそらくかなり大きな変更になるため、確信が持てません。

「いいね!」 2

ウィザードについて:ウィザードが失敗を表示しなくても構いません。ただし、メールが正常に送信されたことを示すことも避けてください。事実に近い表現の方がより役立ちます。戻り値のステータスを表示することが難しい場合は、「登録用メールが正常にキューに追加されました。ステータスを確認するには /path/to/log を参照してください」と表示する方が良いでしょう。

ログについて:ワーカースレッドは、特にエラーが発生した際にステータスをログに記録すべきです。アーキテクチャには詳しくありませんが、「unicorn.stderr.log」や他の場所には有用な情報が何も見当たりません。戻りコードやエラーメッセージを何かが吸い取っているはずです…

「いいね!」 1

もし冒険心がおありでしたら、これを改善するプルリクエストを喜んで受け付けます。

「いいね!」 2

変更を受け入れていただきありがとうございます。タスクリストに追加しますが、誰かが先に着手しても気にしないでください :slight_smile:

「いいね!」 1

管理者ログイン後、管理者コンソールからメールエラーが表示され、それらがデータベースに保存されていることが示されます。また、最初の管理者登録が完了する前から、データベース経由でアクセス可能だった可能性があります。

skipped_email_logs テーブルには、私が探していた情報が含まれています。

discourse ユーザーとして discourse コンテナにログインしている場合は、以下を実行できます。

psql discourse -c "select * from skipped_email_logs"