メンバーが「ウォッチカテゴリ」からのメールを受信できない

こんにちは。既存ユーザーの意図的な選択を上書きする方法はありますか?

UserOption.update_all(default_categories_watching: <id>)UserOption.update_all(watched_categories: <id>) を試しましたが、これらはユーザーオプションではありません…

編集と解決策: User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end

「いいね!」 1

レールコンソール(APIでも可能)を通じて行うことは可能ですが、それを行うべきかどうかは慎重に検討することをお勧めします。ユーザーが意図的にカテゴリ(またはタグやトピック)を「監視」または「ミュート」する選択をした場合、その選択を上書きすることは望ましくない可能性が高いです。ユーザーはそれを元に戻すこともできるため、何も得られないかもしれません。

「いいね!」 3

回答ありがとうございます。完全に同意します。ただし、私たちの場合は、ここで説明した現在の問題を解決するためです。Favor activity summary posts from certain category

アイデアは、新しいデフォルト設定(特定のカテゴリの監視)をロールバックし、その後、人々が好きなように変更できるようにすることです。

上記のコマンド User.all.each do |user| CategoryUser.batch_set(user, :watching, [\u003cid\u003e]) end が、すべてのユーザーの設定を変更するのに何らかの理由で機能しなかったことに気づきました。何か理由をご存知ですか?さらに良いのは、新しい監視設定を既存のユーザー監視設定に追加することです…

追伸:私たちは非常に小さなコミュニティであり、設定を調整する時間があったのはさらに小さな割合だけであることを知っています(;

「いいね!」 1

通知レベルで特定のカテゴリを明示的に設定していない人にとっては、「デフォルトのカテゴリ監視」をリセットし、それを履歴に適用することで、それらは通常のレベルにリセットされるはずです。

数が少ない場合、UIまたはAPIを使用することは、レールコンソールよりも安全な選択肢かもしれません。何人くらいの話ですか?

「いいね!」 1

理解のために、該当するカテゴリはAnnouncementsと呼ばれ、そのIDは22です。

コマンドを試す前に、まさにこれを実行しました。しかし、両方実行した後でも、Announcementsの新しい投稿に対して、一部のユーザーにのみメールが送信されます。
ユーザーがメール通知を解除した可能性があります。なぜなら、_ダイジェスト_メールには「マイナーな」アクティビティのみが含まれていたからです(つまり、以前リンクされた関連問題で説明されているように、Announcementsからの投稿は含まれていませんでした)。

60

「いいね!」 1

データエクスプローラーはインストールされていますか?もしそうであれば、トラッキングやメール設定が正しくないユーザーがどれくらいいるかを確認するクエリはありますか?

「いいね!」 2

良い考えですね。もう少し時間があるときにそうします!

より少ない労力で、すべてのユーザーに必要なパラメータをリセットするRailsスクリプトがあれば、私も幸せになれるでしょう。

「いいね!」 1

解決策を検討する前に、もう少し詳細を知る必要があると思います。category_users テーブルはアクティブなカテゴリ通知レベルの記録のみを保持するため、誰かがそれを持っていない場合、そのデータは rails console で変更するためにテーブルに存在しません。(例えば、管理設定の default categories watching#site-feedback を追加すると、各ユーザーの category_users にレコードが追加され、設定をリセットするとそれらのレコードが再び削除されます)。

「いいね!」 2

User.all.each do |user| CategoryUser.batch_set(user, :watching, [22]) が、すべてのユーザーのトラッキング設定を、指定したカテゴリ(22 | お知らせ)をウォッチするように変更したことを確認しました。このクエリはすべてのユーザーをリストします。

SELECT *
FROM category_users
WHERE category_id = '22' AND notification_level = '3'

そして、このクエリはユーザーを1人だけリストします。

SELECT *
FROM user_options uo
WHERE uo.email_level = '2'

さて、なぜ多くのユーザーがカテゴリ22「お知らせ」に新しい投稿があったときにメールを受信しないのでしょうか?:thinking:

追伸 SQLクエリをいじってみましたが、結合方法がわかりません。

こんにちは。まだ解決策が見つかりません。購読中のトピックの投稿通知メールを受信するために必要なユーザー設定を理解できません。何かアイデアはありますか?よろしくお願いします!

@JammyDodger

念のため、引き続き調査・解決に努めております。特定のカテゴリ(「お知らせ」)の購読設定がデフォルトになっているにもかかわらず、新しい投稿に関するメール通知を受け取っていないユーザーの設定を特定しました。

user mailing_list_mode email_digests external_links_in_new_tab enable_quoting dynamic_favicon automatically_unpin_topics digest_after_minutes auto_track_topics_after_msecs new_topic_duration_minutes last_redirected_to_top_at email_previous_replies email_in_reply_to like_notification_frequency mailing_list_mode_frequency include_tl0_in_digests notification_level_when_replying theme_key_seq allow_private_messages homepage theme_ids hide_profile_and_presence text_size_key text_size_seq email_level email_messages_level title_count_mode_key enable_defer timezone enable_allowed_pm_users dark_scheme skip_new_user_tips color_scheme default_calendar oldest_search_log_date chat_enabled only_chat_push_notifications chat_sound dismissed_channel_retention_reminder dismissed_dm_retention_reminder bookmark_auto_delete_preference ignore_channel_wide_mention chat_email_frequency enable_experimental_sidebar seen_popups chat_header_indicator_preference sidebar_link_to_filtered_list sidebar_show_count_of_new_items watched_precedence_over_muted chat_separate_sidebar_mode topics_unread_when_closed show_thread_title_prompts
JohnDoe false true true true false true 10080 240000 2880 2023-06-13T08:25:13.000Z 1 false 1 1 true 2 0 true NULL {} false 0 0 1 1 0 false Europe/Somewhere false NULL false NULL 0 NULL true NULL NULL NULL NULL 3 NULL 1 false {1,2,3,4,5} 0 false false NULL 0 true true

このユーザーが「お知らせ」カテゴリを購読している場合のユーザーリストに対するこのユーザーの行は以下のとおりです。

id category user notification_level last_seen_at
123 Announcements JohnDoe 3 NULL

この問題が発生する理由がわかりません。他に私が気づいていない設定はありますか?ユーザーが通知メールのいずれかで購読解除をクリックして、メール設定が変更された可能性はありますか?

よろしくお願いします!

通知メールの「購読解除」リンクをクリックすると、ユーザーは通知設定を変更できるページに移動します。例:

ユーザーが「<category_name>カテゴリのすべてのトピックの監視を停止する」または「Discourseからのメールを一切送信しない」オプションを選択した場合、その変更はユーザーの設定ページで確認できます。カテゴリが監視カテゴリリストから削除されているか、メール設定が変更され、メールページのすべての設定が「なし」に設定されます。

「このトピックの監視を停止する」オプションを選択した場合、変更を確認するのはより困難です。その場合、管理ページからユーザーになりすまし、トピックにアクセスして、トピックの通知レベルが「監視中」から「追跡中」に変更されているかどうかを確認できます。Railsコンソールからトピックの通知レベルに関する情報を取得することもできます。

これに深入りする前に、サイトの「スキップされたメールログ」ページにアクセスしてください。管理サイドバーから移動できます。「宛先」フィールドにユーザーのメールアドレスを入力します。これにより、特定のメールがユーザーに送信されなかった理由に関する詳細が表示される場合があります。

「いいね!」 3

返信ありがとうございます。

スキップされたメールのセクションを確認しました。「ユーザーが最近アクティブだった」、「ユーザー自身の投稿に対するメーリングリスト通知が無効になっている」、「bounce_score_thresholdを超えた」のケースのみでした。

以下のいずれかの方法で、すべてのユーザーの設定を変更する可能性はありますでしょうか?

  • すべてのユーザーの設定を、「あたかも」サインアップしたばかりかのように変更する。
  • または:新しいテストユーザーを作成し、その設定を既存の他のすべてのユーザーに貼り付ける。

「デフォルトカテゴリの監視」というサイト設定があります。これを変更すると、履歴的に変更を適用するオプションが表示されます。そのオプションを選択すると、すべてのユーザーの設定が更新されますが、設定ページでそのカテゴリの設定を明示的に構成したユーザーは除外されます。これが、あなたが回避しようとしている問題だと思います。Railsコンソールから対処できるかもしれませんが、そのアプローチは避けた方が良いでしょう。

アナウンス用の新しいカテゴリを作成し、そのカテゴリをサイトの「デフォルトカテゴリの監視」サイト設定に追加するだけで済みます。その後、古いアナウンスカテゴリから新しいカテゴリにトピックを移動することで、サイトを整理できます。カテゴリ名を「アナウンス」にしたい場合は、まず元の「アナウンス」カテゴリの名前を別のものに変更してください。これは少しハックですが、Railsコンソールに触れることなく問題を解決する方法です。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.