الأعضاء الذين لا يتلقون رسائل البريد الإلكتروني من فئة Watched

مرحباً. هل هناك طريقة لتجاوز اختيار المستخدم المتعمد الحالي؟

لقد جربت 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)

من الممكن القيام بذلك من خلال وحدة تحكم Rails (وأيضًا واجهة برمجة التطبيقات API أيضًا)، ولكن يجب أن تفكر مليًا فيما إذا كان يجب عليك فعل ذلك أم لا. إذا اتخذ المستخدم قرارًا متعمدًا بمشاهدة أو كتم فئة (أو علامة أو موضوع)، فإن تجاوز هذا القرار من المحتمل أن يكون غير مرغوب فيه. يمكنهم أيضًا ببساطة إعادة ضبطه إلى ما كان عليه، لذلك قد لا تحقق أي شيء.

3 إعجابات

شكراً على الإجابة. أتفق تماماً. على الرغم من أنه في حالتنا، يتعلق الأمر بحل مشكلة حالية وصفتها هنا: Favor activity summary posts from certain category.

الفكرة هي التراجع عن الإعداد الافتراضي الجديد (مراقبة فئة معينة) ثم السماح للأشخاص بتغييره حسب رغبتهم.

لاحظت الآن أن الأمر أعلاه User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end لم يعمل بطريقة ما لتغيير تفضيلات جميع المستخدمين. هل لديك أي فكرة عن السبب؟ بل سيكون أفضل لو تم إلحاق تفضيل التتبع الجديد بتفضيلات تتبع المستخدم الحالية…

ملاحظة: نحن مجتمع صغير وأعلم أن نسبة صغيرة فقط أخذت الوقت لتعديل تفضيلاتهم (؛

إعجاب واحد (1)

بالنسبة لأي شخص لم يقم بتعيين فئة معينة على مستوى الإشعارات بشكل خاص، فإن إعادة تعيين “مشاهدة الفئة الافتراضية” وتطبيقها تاريخيًا يجب أن يعيدها إلى المستويات العادية.

إذا كانت الأرقام صغيرة، فقد يكون استخدام واجهة المستخدم أو واجهة برمجة التطبيقات (API) خيارًا أكثر أمانًا من وحدة تحكم Rails. عن كم عدد الأشخاص نتحدث؟

إعجاب واحد (1)

للفهم، الفئة المعنية تسمى الإعلانات ومعرفها هو 22.

لقد فعلت هذا بالضبط قبل محاولة الأمر أيضًا. ولكن لا يزال بعد كليهما، عند وجود منشور جديد في الإعلانات، يتلقى بعض المستخدمين فقط بريدًا إلكترونيًا.
ما قد يكون قد حدث هو أن المستخدمين ألغوا الاشتراك في إشعارات البريد الإلكتروني لأن البريد الإلكتروني الملخص احتوى فقط على نشاط “طفيف” (أي، لا توجد منشورات من الإعلانات كما هو موضح في المشكلة ذات الصلة المرتبطة سابقًا)

60

إعجاب واحد (1)

هل لديك مستكشف البيانات مثبتًا؟ إذا كان الأمر كذلك، فهل لديك استعلام لمعرفة عدد المستخدمين الذين ليس لديهم التتبع الصحيح و/أو تفضيل البريد الإلكتروني؟

إعجابَين (2)

فكرة جيدة. سأفعل ذلك عندما يكون لدي المزيد من الوقت!

جهد أقل في الوقت الحالي، نص برمجي لـ Rails لإعادة تعيين المعلمات الضرورية لجميع المستخدمين سيجعلني سعيدًا أيضًا.

إعجاب واحد (1)

أعتقد أننا بحاجة إلى معرفة المزيد من التفاصيل قبل التوصل إلى حل. جدول category_users يحتفظ فقط بسجل لمستويات إشعارات الفئات النشطة، لذلك إذا لم يكن لدى شخص ما مستوى، فلن تكون البيانات موجودة في الجدول لتغييرها عبر وحدة تحكم Rails. (على سبيل المثال، إذا أضفت #site-feedback إلى إعداد المسؤول default categories watching، فسيضيف سجلاً في category_users لكل مستخدم، وعندما أعيد تعيين الإعداد، سيحذف تلك السجلات مرة أخرى).

إعجابَين (2)

يمكنني التأكيد على أن User.all.each do |user| CategoryUser.batch_set(user, :watching, [22]) قد غيّر تفضيلات التتبع لجميع المستخدمين لمراقبة الفئة المطلوبة (22 | Announcements)؛ حيث أن هذا الاستعلام يسرد جميع المستخدمين:

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

وهذا الاستعلام يسرد مستخدمًا واحدًا فقط:

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

السؤال الآن هو، لماذا لا يتلقى العديد من المستخدمين بريدًا إلكترونيًا عند وجود منشور جديد في الفئة 22 “Announcements” :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 إعجابات

شكراً على الرد.
لقد تحققت من قسم رسائل البريد الإلكتروني التي تم تخطيها. هناك فقط حالات “تمت رؤية المستخدم مؤخرًا”، و"تم تعطيل إشعارات القائمة البريدية لمنشورات المستخدم الخاصة"، و"تجاوزت عتبة درجة الارتداد".
كنت أتساءل عما إذا كانت هناك إمكانية لتغيير الإعدادات لجميع المستخدمين بإحدى الطرق التالية:

  • تغيير إعداد جميع المستخدمين “كما لو” أنهم قاموا بالتسجيل للتو.
  • أو: أقوم بإنشاء مستخدم اختبار جديد وأستخدم هذه الإعدادات للصقها على جميع المستخدمين الحاليين الآخرين.

هناك إعداد الموقع “افتراضي فئات المراقبة”. إذا قمت بتغييره، فستُمنح خيار تطبيق التغييرات تاريخيًا. سيؤدي تحديد هذا الخيار إلى تحديث التفضيلات لجميع المستخدمين باستثناء المستخدمين الذين قاموا بتكوين تفضيلاتهم بشكل صريح لتلك الفئة في صفحة تفضيلاتهم. أعتقد أن هذه هي المشكلة التي تحاول تجنبها. يمكنك التعامل مع ذلك من وحدة تحكم Rails، لكنني سأتجنب هذا النهج.

يمكنك ببساطة إنشاء فئة جديدة للإعلانات وإضافة تلك الفئة إلى إعداد الموقع “افتراضي فئات المراقبة” الخاص بموقعك. يمكنك بعد ذلك ترتيب الموقع عن طريق نقل المواضيع من فئة الإعلانات القديمة إلى الفئة الجديدة. إذا كنت ترغب في الاحتفاظ باسم الفئة “الإعلانات”، فابدأ بإعادة تسمية فئة “الإعلانات” الأصلية إلى شيء آخر. أدرك أن هذا يعتبر حلاً مؤقتًا، ولكنه طريقة لحل المشكلة دون لمس وحدة تحكم Rails.

إعجاب واحد (1)

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