Mitglieder, die keine E-Mails von der Beobachteten Kategorie erhalten

Hallo. Gibt es eine Möglichkeit, die bewusste Wahl bestehender Benutzer zu überschreiben?

Ich habe versucht UserOption.update_all(default_categories_watching: <id>) und UserOption.update_all(watched_categories: <id>), aber das sind keine Benutzeroptionen…

EDIT und Lösung: User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end

1 „Gefällt mir“

Es ist möglich, dies über die Rails-Konsole (und auch über die API) zu tun, aber ich würde sorgfältig überlegen, ob Sie dies tun sollten oder nicht. Wenn ein Benutzer bewusst die Entscheidung getroffen hat, eine Kategorie (oder ein Tag oder Thema) zu beobachten oder stummzuschalten, ist es wahrscheinlich unerwünscht, diese Entscheidung zu überschreiben. Sie können es auch einfach wieder auf das zurücksetzen, was es war, sodass Sie möglicherweise nichts gewinnen.

3 „Gefällt mir“

Danke für die Antwort. Ich stimme vollkommen zu. In unserem Fall geht es jedoch darum, ein aktuelles Problem zu lösen, das ich hier beschrieben habe: Favor activity summary posts from certain category.

Die Idee ist, die neue Standardeinstellung (Beobachten einer bestimmten Kategorie) rückgängig zu machen und die Leute dann ihre Einstellungen nach Belieben ändern zu lassen.

Ich habe jetzt bemerkt, dass der obige Befehl User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end aus irgendeinem Grund nicht funktioniert hat, um die Einstellungen für alle Benutzer zu ändern. Irgendeine Idee warum? Noch besser wäre es, die neue Tracking-Einstellung zu den bestehenden Benutzer-Tracking-Einstellungen hinzuzufügen…

P.S. Wir sind eine kleine Community und ich weiß, dass nur ein noch kleinerer Bruchteil sich die Zeit genommen hat, seine Einstellungen anzupassen (;

1 „Gefällt mir“

Für alle, die keine bestimmte Kategorie auf Benachrichtigungsebene festgelegt haben, sollten das Zurücksetzen der Standardkategorie-Beobachtung und die historische Anwendung dieser Einstellungen diese auf normale Stufen zurücksetzen.

Wenn die Zahlen gering sind, ist die Verwendung der Benutzeroberfläche oder der API möglicherweise sicherer als die Rails-Konsole. Über wie viele Personen sprechen wir?

1 „Gefällt mir“

Zum besseren Verständnis: Die betreffende Kategorie heißt Ankündigungen und ihre ID ist 22.

Ich habe genau das getan, bevor ich auch den Befehl ausprobiert habe. Aber immer noch, nach beidem, bei einem neuen Beitrag in Ankündigungen erhalten nur einige Benutzer eine E-Mail.
Was passiert sein könnte, ist, dass Benutzer sich von den E-Mail-Benachrichtigungen abgemeldet haben, weil die Digest-E-Mail nur “geringfügige” Aktivitäten enthielt (d. h. keine Beiträge aus Ankündigungen, wie im zuvor verlinkten verwandten Problem beschrieben).

60

1 „Gefällt mir“

Haben Sie den Daten-Explorer installiert? Wenn ja, haben Sie eine Abfrage, um zu sehen, wie viele Ihrer Nutzer das richtige Tracking und/oder die richtige E-Mail-Präferenz nicht haben?

2 „Gefällt mir“

Gute Idee. Das mache ich, wenn ich etwas mehr Zeit habe!

Weniger Aufwand bedeutet sofortige Mühe, ein Rails-Skript zum Zurücksetzen der notwendigen Parameter für alle Benutzer würde mich ebenfalls glücklich machen.

1 „Gefällt mir“

Ich denke, wir müssen mehr Details erfahren, bevor wir eine Lösung ausarbeiten können. Die Tabelle category_users speichert nur aktive Benachrichtigungsebenen für Kategorien. Wenn also jemand keine hat, sind die Daten nicht in der Tabelle vorhanden, um sie über die Rails-Konsole zu ändern. (Wenn ich beispielsweise #site-feedback zur Admin-Einstellung default categories watching hinzufüge, wird für jeden Benutzer ein Eintrag in category_users erstellt, und wenn ich die Einstellung zurücksetze, werden diese Einträge wieder gelöscht).

2 „Gefällt mir“

Ich kann bestätigen, dass User.all.each do |user| CategoryUser.batch_set(user, :watching, [22]) die Tracking-Einstellungen aller Benutzer geändert hat, um die gewünschte Kategorie (22 | Ankündigungen) zu beobachten. Diese Abfrage listet alle Benutzer auf:

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

Und diese Abfrage listet nur 1 Benutzer auf:

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

Die Frage ist nun, warum so viele Benutzer keine E-Mail erhalten, wenn es einen neuen Beitrag in Kategorie 22 „Ankündigungen“ gibt :thinking:

P.S. Ich experimentiere mit den SQL-Abfragen und weiß nicht, wie ich sie verbinden kann.

Hallo. Ich habe noch keine Lösung gefunden. Ich kann die notwendigen Benutzereinstellungen nicht verstehen, um E-Mail-Benachrichtigungen für beobachtete Themen zu erhalten. Irgendwelche Ideen? Danke!

Hallo @JammyDodger

Nur für den Fall, ich untersuche das Problem weiterhin und versuche, es zu lösen. Ich habe die Einstellungen eines unserer Benutzer isoliert, der die Standardeinstellungen für das Beobachten einer bestimmten Kategorie (‘Ankündigungen’) hat, aber keine E-Mail-Benachrichtigungen für neue Beiträge erhält:

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

Ich kann wirklich nicht sehen, warum dieses Problem auftritt, da dies die Zeile des Benutzers ist, wenn ich die Benutzer abfrage, die die Kategorie ‘Ankündigungen’ beobachten:

id category user notification_level last_seen_at
123 Announcements JohnDoe 3 NULL

Gibt es noch andere Einstellungen, die ich übersehe? Könnte es sein, dass der Benutzer in einer der Benachrichtigungs-E-Mails auf “Abmelden” geklickt hat und dies seine E-Mail-Einstellungen geändert hat?

Danke!

Wenn Sie in einer Benachrichtigungs-E-Mail auf den Link „Abbestellen“ klicken, gelangen Sie zu einer Seite, auf der Sie Ihre Benachrichtigungseinstellungen ändern können. Zum Beispiel:

Wenn ein Benutzer entweder die Option „Alle Themen in der Kategorie <category_name> nicht mehr verfolgen“ oder „Keine E-Mails von Discourse senden“ ausgewählt hat, sehen Sie die Änderungen auf deren Einstellungsseite. Entweder wurde die Kategorie aus der Liste der beobachteten Kategorien entfernt, oder deren E-Mail-Einstellungen wurden so geändert, dass alle Einstellungen auf deren E-Mail-Seite auf „nie“ gesetzt sind.

Es ist schwieriger, die Änderung zu sehen, wenn der Benutzer die Option „Dieses Thema nicht mehr verfolgen“ ausgewählt hat. In diesem Fall könnten Sie den Benutzer von deren Admin-Seite aus imitieren und dann das Thema besuchen, um zu sehen, ob sich deren Benachrichtigungsstufe für das Thema von „beobachten“ zu „verfolgen“ geändert hat. Sie können die Informationen über deren Benachrichtigungsstufe für das Thema auch über die Rails-Konsole abrufen:

Bevor Sie sich zu sehr damit beschäftigen, rufen Sie die Seite „Skipped Email Logs“ der Website auf. Sie können diese über die Admin-Seitenleiste aufrufen. Geben Sie die E-Mail des Benutzers in das Feld „An Adresse“ oben auf der Seite ein. Möglicherweise werden Ihnen Details angezeigt, warum die jeweilige E-Mail nicht an den Benutzer gesendet wurde.

3 „Gefällt mir“

Danke für die Antwort.

Ich habe den Abschnitt mit den übersprungenen E-Mails überprüft. Dort gibt es nur die Fälle „Benutzer wurde kürzlich gesehen“, „Mailinglisten-Benachrichtigungen für eigene Beiträge des Benutzers deaktiviert“ und „bounce_score_threshold überschritten“.

Ich habe mich gefragt, ob es eine Möglichkeit gibt, die Einstellungen für alle Benutzer auf eine der folgenden Arten zu ändern:

  • Ändere die Einstellung aller Benutzer „so als ob“ sie sich gerade angemeldet hätten.
  • oder: Ich erstelle einen neuen Testbenutzer und verwende diese Einstellungen, um sie auf alle anderen vorhandenen Benutzer zu übertragen.

Es gibt die Site-Einstellung „Standardkategorien beobachten“. Wenn Sie diese ändern, erhalten Sie die Option, die Änderungen historisch anzuwenden. Wenn Sie diese Option auswählen, werden die Einstellungen für alle Benutzer aktualisiert, mit Ausnahme von Benutzern, die ihre Einstellungen für diese Kategorie explizit auf ihrer Einstellungsseite konfiguriert haben. Ich denke, das ist das Problem, das Sie umgehen wollen. Sie könnten das wahrscheinlich von der Rails-Konsole aus erledigen, aber ich würde diesen Ansatz wahrscheinlich vermeiden.

Sie könnten einfach eine neue Kategorie für Ankündigungen erstellen und diese Kategorie zu den Site-Einstellungen „Standardkategorien beobachten“ Ihrer Site hinzufügen. Sie könnten die Site dann aufräumen, indem Sie Themen von der alten Ankündigungskategorie in die neue verschieben. Wenn Sie den Kategorienamen „Ankündigungen“ beibehalten möchten, beginnen Sie damit, die ursprüngliche „Ankündigungen“-Kategorie in etwas anderes umzubenennen. Mir ist bewusst, dass dies ein kleiner Hack ist, aber es ist eine Möglichkeit, das Problem zu lösen, ohne die Rails-Konsole zu berühren.

1 „Gefällt mir“

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