bdhays
1
自分自身でホストしている Discourse インスタンスのテストに協力してくれるよう、11 人の同僚にメール招待を送りました。ほとんどの人は問題なくアカウントを作成できましたが、1 人だけ例外がありました。
彼に最初の招待メールを送ったところ、ソフトバウンスしました(送信メールには MailJet を使用しており、彼のメールアドレスのドメインは mac.com です)。8 日後に再送しましたが、再度ソフトバウンスしました。この間、私の個人アカウントからは正常にメールが送れていたので、招待リンクを生成してその方法で送りました。
彼がリンクをクリックすると、アカウントとパスワードの作成はできましたが、アクティベーションメールは届きませんでした。管理パネルを確認すると、アクティベーションメールが「Skipped」タブに表示されており、「Skip Reason」は「User is anonymous」となっていました。
この文脈での「anonymous」が何を意味するのかよくわかりません。リンク経由で招待されたユーザーは通常、メールアドレスを確認するためのアクティベーションメールが届くものだと思っていました。「full name required」はチェック済みですが、彼はプロフィールのその項目に入力済みでした。
匿名モードを有効にしていますか?Discourse ではデフォルトで無効になっています。
bdhays
3
デフォルトから変更した「匿名」を含む設定は以下の通りです:
「ログイン必須」:オン
「サインアップ CTA を有効化」:オフ
「匿名投稿を許可」:オン
匿名アカウントは一時的なものであり、ログイン中のユーザーが「匿名モードに入る」オプションを選択した際にその都度作成されることをお忘れなく。
bdhays
5
なるほど、これは興味深いですね。彼は一度もアクティベートされず、ログインもできなかったはずなのに、匿名モードに入れたとは思いませんでした。
Data Explorer でデータベースを検索し、どの匿名ユーザーがどの元のユーザーに関連付けられているかを確認しました。彼のアカウントは、私の管理者アカウントにリンクされた匿名ユーザーとして表示されています。
なぜ彼が anonymous_users テーブルに存在するのか、理由がわかりません。
SSOコードに何か問題があるようです。SSOを使用していますか?
それ以外については、何らかの方法でインストールが破損していると思われます。
bdhays
7
SSO は使用しておらず、組み込みのユーザー認証のみを使用しています。
インストールに問題がある場合、再構築で解決するでしょうか?
また、これは 2.4.0.beta6 への更新後に招待した最初のユーザーであり、メールではなく招待リンクを使用して招待した唯一のユーザーでもあります。
匿名モードの間に招待しましたか(招待リンクを生成)?
bdhays
9
リンクを生成した際は、匿名モードではなく管理者アカウントでログインしていました。
更新:問題を再現しようとして別のメールアドレスで試したところ、個人用iCloudメールから、Gmailがホストする教育用ドメイン(.edu)のセカンダリアドレスに招待リンクを送信しました。
招待リンクをクリックして登録した後、Discourseは教育用アドレスにアクティベーションメールを送信しました。管理者アカウントで確認したところ、新規ユーザーアカウントはanonymous_usersには含まれていませんでした。管理者としてログアウトし、その後、アクティベーションメールのリンクを通じてアカウントを有効化することができました。
新規ユーザーを削除した後、自動生成された招待メールを使って同じ手順を再度試みたところ、すべて期待通りに動作しました。
私が管理している別のメールアドレスでは問題を再現できなかったため、これは特定の人のメールアカウントやメールプロバイダーに関連する問題ではないでしょうか。以前、2回の招待メールは異なるタイミングでソフトバウンスしましたが、私の個人アカウントからはその人にメールを送信できていました(メールプロバイダーの問題ではないと思います。彼も私もmac.com/icloud.comを利用しており、Discourseから私の個人アカウントへメールを送信しても問題ないためです)。
また、配信性の問題のトラブルシューティングを試みるため、管理者のメール設定(admin/email)を通じてその人に「配信性テスト」メールを送信したところ、MailJetでは「配信済み」と表示されました。システムを通じて最後に彼にメールを送信してから現在までの間で変更された点は、DMARCレコードをDNSに追加したことです(SPFとDKIMは既に動作していましたが、DMARCは設定されていませんでした)。