重複なしの一括メール

メンバーが関心のあるグループとサブカテゴリを選択したとします。

それらのグループとサブカテゴリのいずれかを選択したメンバーにアナウンスを送信したいと思います。

例:グローバルな主要都市、いくつかの区、および問題で構成される都市。

ユーザーは以下を選択できます。

  • 特定の問題(一般的なグループとして)
  • その問題に関する区内のグループ
  • その問題に関する他の2つの区のグループ
  • 2番目の特定の問題(一般的なグループとして)
  • その問題に関するすべての区のすべてのグループ
  • 主要都市のメイングループ

これらのグループまたはサブカテゴリの1つ以上を対象にメールを送信したい場合、特にメインの都市グループを選択した人がすべての区からの情報を転送し、さらにいくつかのサブグループなどを選択した場合、一部のユーザーは同じアナウンスのメールを複数受信することになる可能性があります。

質問:複数のターゲットグループとサブカテゴリリストに触れるメーリングリストを、重複なしで準備してメッセージを送信するにはどうすればよいですか?

1)外部スクリプトを使用する必要がありますか?

2)外部メールプロセッサが必要ですか?

ありがとうございます

マーク

グループやカテゴリの任意のセット全体で重複のない配信を保証する必要がある場合は、以下を行う必要があります。

  • 対象となるグループまたはカテゴリからユーザーリストをエクスポートします。
  • これらのリストを、手動またはスクリプトを使用してマージおよび重複排除します。
  • 外部メールプロセッサを使用して、重複排除されたリストにメッセージを送信します。

これは、ユーザーが同じアナウンスを複数回受信しないことを保証するための最も堅牢な方法です。

ありがとうございます。それを自動化できるかご存知ですか?例えば、新しいメンバー登録/脱退ごと、またはグループ/カテゴリ選択ごとにメッセージを受信するためにAPIにリクエストを送信し、新しい変更のみ、または(それより劣りますが)グループ/カテゴリを含むリスト全体を受信することは可能でしょうか。Pythonプログラムでリクエストできますか?(Pythonのコーディングはできます)。質問は、DiscourseとPythonの間、およびPythonとメーリングプロセッサ間の自動通信についてです。

Discourse は、以下を可能にする堅牢な REST API を提供します。

  • すべてのユーザー、グループ、およびユーザーとグループのメンバーシップを一覧表示する
  • 新規ユーザー登録およびグループへの参加/脱退アクションを監視する(ポーリングまたはWebhook経由)
  • カテゴリメンバーシップ構成を取得する

完全なリストを照会するか、最近の変更を追跡しようとすることができます。完全な増分変更検出には、時間ベースのチェックを実装し、違いをローカルで管理する必要がある場合があります。認証は、HTTPヘッダー(Api-KeyApi-Username)を介して処理されます。

ただし、より効率的で統合された制御のためには、カスタム Discourse プラグインの作成を推奨します。プラグインは Discourse サーバー環境内で実行され、以下のような Discourse の内部機能に直接アクセスできます。

  • ユーザー、グループ、およびカテゴリのメンバーシップ更新
  • 登録およびグループ変更のライフサイクルイベントフック
  • Discourse の内部 API およびデータベースへの直接アクセス

このアプローチにより、リアルタイム機能と、メール処理やユーザーセグメンテーションのような自動ワークフローを実装するためのより大きな柔軟性が得られます。

Discourseによってホストされている場合でも、インスタンスで動作するプラグインを作成できますか、それともホストする必要がありますか?

非公式プラグインの場合、Enterpriseプランにのみインストールできると思います。それ以外の場合は、自分でホストする必要があります。

  • 動的なリスト(ユーザー/グループ/カテゴリデータ)を生成し、Discourse内に表示または保存する。
  • データをファイルにエクスポートする、またはダウンロード可能な管理者レポートを作成する。
  • 別のサーバーにHTTP(S)リクエストを送信する(例:ユーザーリストの更新をPython/メールツールにプッシュする)。
  • Webhookをトリガーする、タスクをスケジュールする、または外部APIと直接統合する—すべてDiscourse内から、ポーリングなしで実行できる。

@EMHmark7 これをどう機能させるか分かりましたか?

Discourseでは、カテゴリを作成し、コミュニティメンバーが「ウォッチ」通知レベルを選択してそれらのカテゴリを「購読」できるようにすることで、目的を達成できます。Default categories watching または Default categories watching first post は、サイト全体にリーチするために、サイト上のアナウンスカテゴリを持つ場合に便利です。

上記をグループメンバーシップまたはその他の基準に基づいて管理する方法があると思いますが、しばらくやっていないので、誰かが共有できるレシピがあるかもしれません。

別の方法は、グループに直接PMを送信することです。少数のグループにPMを送信し、同じメンバーが複数のグループに属している場合、重複はありません。

しかし、あなたが探しているのが、人々が議論に参加するためにログインするフォーラムやコミュニティではなく、メールを送信するメーリングリストの集まりである場合、別のツールを探しているように思えます。

これらすべてをDiscourseの外部のコードで管理できるため、インストールする必要はありません。WordPressを使用している場合は、GitHub - discourse/wp-discourse: WordPress plugin that lets you use Discourse as the community engine for a WordPress blog を使用して無料で入手でき、その後、メーリングリスト部分を処理するために別のWordPressプラグインを使用できます。