確認とパスワード変更を除き、メールは正常に機能します

こんにちは、皆さん。

私は 2.6.0.beta5 を使用しています(今日 beta6 が公開されているのを見ました、やった!)。digestuser_posteduser_replied など、ほぼすべてのメールが機能しているようですが、notify_old_email_addconfirm_new_emailforgot_password のメールが届かないようです。

「届かない」というのは、これらのメールが宛先に到達していないという意味です(Discourse のメールレジストリでは「送信済み」と表示されています)。

例外はメールアドレス変更用のメールのみで、こちらは実際に届きます。しかし、ユーザーがリンクをクリックすると「申し訳ありませんが、この確認リンクは無効です」というメッセージが表示されてしまいます。

何か心当たりや対処法はありますか?特定のメールのみが宛先に届かないのは不思議に思います。これではユーザーがアカウントを有効化したり、メールアドレスを変更したりすることが困難(あるいは不可能)になり、ロックアウトのリスクがあります。

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

追伸:調査中に判明したのですが、新規登録ユーザーのメールアドレス確認メールは機能しますが、既存ユーザーには確認メールやパスワード変更メールが届きません。

掘り起こして調べてみたところ、この問題は特定のシナリオ下で発生することがわかりました。これは「仕様」なのか、見落としなのか、それとも私の単純な勘違いなのかはわかりません。

もし無料登録でフォーラムを作成した後、設定を「ユーザー承認が必要」に変更した場合、かつては承認が不要だった既存ユーザーがパスワードを変更したり、それに類する操作を試みると、アカウントが「承認待ち」であるために操作ができなくなります。また、パスワード変更メールや確認メールも送信されません(Discourse のメールログでは送信されていると表示されますが)。

さらに、ユーザーが「未承認」状態であるため、異なるデバイスからのログインも阻止されます。

回避策としては、ユーザーに別のデバイスからログインしてもらうことです。そうすると、モデレーターまたは管理者に「承認待ち」として表示され、技術的には期待通りに動作するようになります。

プロセスの側面やこれが意図されたものかどうか(もし誰かが明確にしてくだされば、私が頭がおかしくなっているわけではないと確認できて助かります :P)は別として、人間の要素も考慮する必要があります。コミュニティに一定期間在籍しているユーザーは、承認が必要だと知っていても、自分のアカウントがすでに存在しているため、この表示を見るとパニックになったり、反応が過剰になったりします。多くのユーザーはこれをバグだと誤解して承認プロセスをキャンセルしてしまい、結果としてモデレーターや管理者は承認リクエストを確認できなくなります。