jeff_y
2020 年 11 月 17 日午前 1:07
1
最新の 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
sam
(Sam Saffron)
2020 年 11 月 17 日午前 1:17
2
一般的に、メールはバックグラウンドキューで送信されるため、ユーザーには見えません。
ただし、ウィザードをもう少し派手で、失敗を明確に知らせるものにすることは検討しています。その場合、サーバーをポーリングして状態を確認する必要があります。これはおそらくかなり大きな変更になるため、確信が持てません。
「いいね!」 2
jeff_y
2020 年 11 月 17 日午前 1:28
3
ウィザードについて:ウィザードが失敗を表示しなくても構いません。ただし、メールが正常に送信されたことを示すことも避けてください。事実に近い表現の方がより役立ちます。戻り値のステータスを表示することが難しい場合は、「登録用メールが正常にキューに追加されました。ステータスを確認するには /path/to/log を参照してください」と表示する方が良いでしょう。
ログについて:ワーカースレッドは、特にエラーが発生した際にステータスをログに記録すべきです。アーキテクチャには詳しくありませんが、「unicorn.stderr.log」や他の場所には有用な情報が何も見当たりません。戻りコードやエラーメッセージを何かが吸い取っているはずです…
「いいね!」 1
sam
(Sam Saffron)
2020 年 11 月 17 日午前 1:31
4
もし冒険心がおありでしたら、これを改善するプルリクエストを喜んで受け付けます。
「いいね!」 2
jeff_y
2020 年 11 月 17 日午前 1:34
5
変更を受け入れていただきありがとうございます。タスクリストに追加しますが、誰かが先に着手しても気にしないでください
「いいね!」 1
jeff_y
2020 年 11 月 20 日午後 11:15
6
管理者ログイン後、管理者コンソールからメールエラーが表示され、それらがデータベースに保存されていることが示されます。また、最初の管理者登録が完了する前から、データベース経由でアクセス可能だった可能性があります。
skipped_email_logs テーブルには、私が探していた情報が含まれています。
discourse ユーザーとして discourse コンテナにログインしている場合は、以下を実行できます。
psql discourse -c "select * from skipped_email_logs"