グループ内の未登録ユーザーにメールを送信

現在、サポート用の公開メールアドレスを持っていますが、コミュニティ用の Discourse へ移行して単一のプラットフォームに統合したいと考えています。

テストでは、未登録のユーザーが公開カテゴリ宛にメールを送信すると Discourse がそれを検出しますが、誰かが返信してもそのユーザーには何も届きません。「あなたは匿名ユーザーです。議論はこちらへ」といったメールも届きません。

これに関する情報として、6 年前のものですが Discourse as a private email support portal を見つけました。しかし、現在の Discourse で匿名ユーザーがメールを受け取れるのかどうかは明確ではなく、またそのようなプラグインも見つかりません。

どなたかお手伝いいただけますか?

「いいね!」 2

何か助けはありますか?
それについての情報をどうやって見つけたらいいか分かりませんが、Discourse が匿名ユーザーに通知しないのは奇妙に思えます。

ゲストユーザーがメールを受信した場合、そのメールがスパムとみなされたり短すぎたりして受け入れられなかったとしても、Discourseからメールが送信されていることが確認できますが、ログにはエラーは記録されていません。

匿名ユーザーと ステージドユーザー を混同されているようです。

返信メールが送信され、かつバウンス(未着)した場合、エラーは「Emails」>「Bounced」>「Email type」列で確認できる可能性があります。

メールタイプのエラーをクリックすると、メールプロバイダーからのレスポンスが表示されます(通常は件名や本文の末尾付近にあります)。

例:

<my-address@example.com>: Host or domain name not found. Name service error for
    name=example.com type=AAAA: Host not found

これにより、問題の発生箇所を特定できる場合があります。

「いいね!」 2

ありがとうございます。ただし、私たちの環境では、メールが跳ね返ったページは空です。
さて、カテゴリの登録はしていないが、メールを送信しているユーザーはどのような種類のユーザーでしょうか。

サイトからのメールがメール受信箱に届き、返信したにもかかわらず登録されていない場合、そのユーザーはステージングユーザーです。

わかりました。ステージングユーザーは存在しますが、「参加しているすべてのメッセージを自動的に監視し、返信の通知を受け取る」という部分が機能していません。
Discourse のログには、同じ設定で新しいインスタンスに再現しようとしている問題を示すエラーは一切記録されていません。

この動作も再現できるようです。カテゴリのトピックにメールを送信すると、ステージングユーザーが作成されますが、そのトピックへの返信に関するメールは受信しません。Discourse 全体では SMTP は正常に動作していますが、ステージングユーザーについては、いかなるログも記録されていません。

Discourse v: 2.7.0.beta6 (7e2b7bdd78)

「いいね!」 1

これはバグであることが確認されましたので、フィードバックをお待ちしています。

具体的に何を達成しようとしているのでしょうか?匿名ユーザーがカテゴリにメールを送信してトピックを作成できるようにし、他のメンバーに返信を期待するのは、私には不自然に思えます。これらの人々は、まずコミュニティに参加してからフォーラムに投稿すべきではないでしょうか?

あるいは、グループを作成して請求書を発行し、メールの受信を許可し、スタッフ側で返信する方法もあります。私たちはこのように対応しています。

イタリアの Linux 協会向けにサポートカテゴリを設けており、未登録のユーザーもそこで助けを求めることができます。現在はメール対応を行っており、ボランティアグループが担当していますが、フォーラムに移行してコミュニティの他のメンバーも支援に参加できるようにし、対応を透明化したいと考えています。

登録は Discourse に統合された SAML 経由の SSO 下で行われていますが、課題は、スレッドを作成したステージドユーザーに対して、誰かが返信した際に Discourse がメールを送信しない点です

メール送信を好む人は多く、このメールアドレスは長年存在し、コミュニティ外部の人々にも公開されています。アカウントを持たない人々も利用可能です。そのため、このカテゴリでのみそのような対応を許可し、プラットフォームへの移行を支援している人々全員をサポートしています。

「いいね!」 1

(上記の奇妙なタイプミス、申し訳ありません。修正します。私のスマホは時々、単語の自動補完がひどいんです…)

興味深い内容ですね。ステージドユーザーの機能の本来の用途の限界を押し広げているように思えます。ただし、カテゴリに対してこの設定を許可しているため、ステージドユーザーが自分のトピックへの返信を受け取れると想定されているのかもしれません。しかし、それがチームやこの設定を利用している他のサイトの共通認識だとは限りません。この設定は、そのメーリングリストの購読者がすべてフォーラムに登録していなくても、フォーラムのカテゴリをメーリングリストのように機能させるために用意されたものだと考えられます。

Screen Shot 2021-04-12 at 11.27.33 AM

いくつか他のアプローチを試すことをお勧めします。

(1) あなたが管理者であれば、ステージドユーザーのメール設定や通知設定を確認できます。もしかすると、デフォルトのユーザー設定があなたの運用方法と適合していない可能性があります。例えば、「外出時のみメールを送信」の設定を「常に」に変更する必要があるかもしれません。また、「トピックに投稿した際、そのトピックを追跡する」設定を「監視」に変更する必要がある場合もあります。追跡モードでは、自分の投稿以外の返信は受け取れません。

(2) 匿名メールからのサポートリクエストについては、グループの受信トレイを利用することを検討してみてください。これらのリクエストは、Google 検索で表示されることを好む場合も多いでしょう。その後、個人を特定できる情報を削除した上で、フォーラムで新しいトピックを開始するために得た知見を活用できます。

上記の方法で解決しない場合、カテゴリ設定とステージドユーザーの処理に関連するバグがあるかもしれません。その判断は、私のチームの他のメンバーが行う必要があります。

「いいね!」 1

Understanding user statuses, roles, and permissions を見ると、これは Discourse における一般的な動作のようです。いずれにせよ、Discourse からユーザーに対して、スレッドへのリンクを含むメッセージや、フォーラム側でカスタマイズ可能なアラートなどが送信されるべきです。そうしなければ、この機能はあまり有用ではありません。これは、ユーザーに返信する機会がない連絡フォームのようなものです。

  1. ステージドユーザーが検証された際、Discourse からのメール受信設定(変更も含む)を確認しました。しかし、ステージドユーザーは Discourse から何も受け取っていないようです。また、ログにもエラーやその他の記録は見当たりません。

  2. Discourse における「グループボックス」について、Google で何も見つかりませんでした(なぜフォーラム外にドキュメントがなく、GitHub の数ページしかないのでしょうか?これは個人的な愚痴ですが)。私たちは、フォーラムのユーザーがこのカテゴリに参加できるようにしたいと考えています。しかし、これが私たちの要件に合致するかどうか、またカテゴリと比較して使いやすいかどうかは確信が持てません。

素晴らしいリサーチをありがとうございます!挙動が少し不明確で申し訳ありません。少しテストしてみたところ、私のサイトでは以下の手順で動作を確認できました:

  • ステージドユーザーを有効にする
  • カスタム受信メールアドレスを持つカテゴリを作成し、「アカウントを持たない匿名ユーザーからのメールを受け付ける」設定を有効にする
  • ユーザーにまだ紐付いていないメールアドレスからそのカテゴリへメールを送信する
  • カテゴリに投稿が届き、ステージドユーザーが作成されることを確認する
  • ステージドユーザーの設定を編集し、「誰かが私の投稿を引用、返信、メンション(@username)、またはトピックに招待した際にメールを送信する」を「常に」に変更する

あなたのサイトでも試してみてください。もし動作しない場合、何らかの他の管理者設定が異なる可能性があります。本番環境でこれをどう対処すべきかについては確信が持てません。なぜなら、ステージドユーザーのデフォルト設定を、通常の登録ユーザーとは異なるものに変更することはできないからです。:thinking:

参考までに、数年前私もあなたと同じ状況にありました。以下の関連トピックをご覧ください。要点をまとめると、ステージドユーザーの機能はカテゴリ/トピックよりもグループ PM(プライベートメッセージ)の方がより適切にサポートされています。ステージドユーザーは本来、スタッフがグループの受信トレイを通じてメールでユーザーと交流し、サポートを提供するためのものです。これが Discourse チームの使い方もです。ステージドユーザーはログインしないため、ユーザー設定自体が存在するのは偶然の産物であり、その設定をいじると予期せぬ結果を招く可能性があります。一方、私たちは人々がアカウントを作成してログインし、コミュニティの議論に参加することを望んでいます。したがって、ステージドユーザーがトピックに参加できるようにサポートを追加することは、むしろ逆効果です。これは、メーリングリストをミラーリングしたいサイトや、Discourse をメーリングリストのアーカイブとして利用したいサイトのために追加されたものだと考えられます。

正直なところ、これがバグなのか、またバグである場合の修正方法がどうなるのかはわかりません。しかし、デフォルト値を変更することで、あなたのサイトのようなケースでこの「偶然の機能」を活用することは可能かもしれません:

  • ステージドユーザーは、自分が所属するすべてのメッセージとトピックを監視する(メッセージと同様に)
  • ステージドユーザーの「誰かが私の投稿を引用、返信、メンション(@username)、またはトピックに招待した際にメールを送信する」設定を「常に」にする

あるいは、ステージドユーザーをメッセージ専用とし、トピックでの利用を完全にやめる方向で強化し、カテゴリ設定から「アカウントを持たない匿名ユーザーからのメールを受け付ける」オプションを削除することも一案です。もし何らかの歴史的な理由(おそらくメーリングリストのミラーリングに関連)でこの設定が必要なサイトがある場合は、これを隠し設定として残すことも考えられます。

これで少し前進できることを願っています。:wink:

「いいね!」 1

すべてのユーザーでこれをデフォルトで有効にしたいと考えており、トラブルを回避したいと考えています(Discourse パネルの設定を探していますが、まだ見つけることができていません)。

これは「デフォルトのメール通知レベル」の管理者設定です。つまり、今後登録するすべてのユーザーは、ログイン中であってもメールで通知を受け取るようになります。

そのため、そのデフォルト設定はすでに全ユーザーに対して定義されていました…

メーリングリストモードを無効化
ユーザーがメーリングリストモードを有効にすることを禁止します(これにより、メーリングリストからのメール送信が防止されます)。

有効になっていたため、現在無効化しました。

また、テスト用に使用しているユーザーには、すでにそのパラメータが「常に」に設定されています。
いずれにせよ、この変更は私たちのケースでは機能しませんでした。

今、なぜユーザーが「返信する」の登録などのメールを受信しないのか疑問に思っています。

この問題はメーリングリストモードとは無関係です。完全に異なるメールアドレスで新しいテストユーザーを作成し、上記の再現手順に従ってみてはいかがでしょうか?

そろそろ Marketplace に投稿して、コンサルタントに設定に関するサポートを依頼する時期かもしれません。メタには、トラブルシューティングやお客様のユースケースに合わせたカスタマイズを支援できる、多くの有能な方々がサービスを提供しています。

ステージングユーザーにスレッドへのリンクとDiscourseへの登録招待を送信する簡単な方法があると考えています。

そのため、プラグインを探していますが、以下のもの以外には該当するものが見つかりません。

これは素晴らしいアイデアですが、いったいどれくらいのメールを受け取っているのでしょうか?これほどの自動化を作る価値があるでしょうか。そして正直なところ、誰かが送ったメールを公開フォーラムに投稿するのは少し変だと思います。もし自分がそうされたら、腹が立つでしょう!そのため、Discourse のコア機能としてこの機能がサポートされることはないと考えます。

もし私があなたの立場なら、これらのメールをスタッフが(ボランティアでも構いません)監視するグループの受信トレイに配信するようにします。そして、スタッフは問題について公開トピックを作成するかどうかを判断できます。作成する場合は、トピックを開始し、そのユーザーを招待して参加させ、フォローアップを行います。スタッフがメールアドレスを招待したり、ユーザーが初めてログインした際に送るトピックを指定したりするのは、今では簡単になっています。

「いいね!」 1