رسائل إشعارات المواضيع لا تُرسل عند إضافة لون للموظفين إلى المشاركة

يعمل حاليًا Discourse 3.5.0.beta7-dev (7562bc2b15)

لا يتم إرسال رسائل البريد الإلكتروني الخاصة بإشعارات الموضوعات عند جدولة نشر مشاركة ضمن ظروف معينة.

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

لدينا فئة تسمى #Announcements وجميع المستخدمين معينون على Watching First Post افتراضيًا.

خطواتنا لتكرار المشكلة:

  1. إنشاء موضوع جديد في فئة مخفية مخصصة للموظفين فقط
  2. تطبيق لون للموظفين على المنشور الأول في الموضوع الجديد
  3. تعيين مؤقت للموضوع، جدولة النشر، تعيين الفئة إلى #Announcements وتعيين الوقت/التاريخ

ما يجب أن يحدث:

  • ينتقل الموضوع من #staff إلى #Announcements
  • يتم إرسال عشرات الآلاف من رسائل البريد الإلكتروني
  • يتلقى كل مستخدم إشعارًا

ما يحدث:

  • ينتقل الموضوع من #staff إلى #Announcements
  • لا يتم إرسال أي رسائل بريد إلكتروني
  • يتلقى كل مستخدم إشعارًا

أثناء انتظار وصول وقت النشر المجدول، يمكنني رؤية هاتين المهمتين معلقتين (مفلترة حسب معرف المنشور):

بعد عشر دقائق عندما تم نشر الموضوع في #Announcements، اختفت المهام:

تم إرسال الإشعارات، إليك ما تلقاه حساب اختبار:

لكن لم يتم إرسال أي رسائل بريد إلكتروني.

عادةً في هذه المرحلة، نرى عشرات الآلاف من رسائل البريد الإلكتروني تبدأ في التراكم في Scheduled وتنتقل تدريجيًا إلى Enqueued، ولكن لا يحدث شيء، ولا يتم إرسال أي رسائل بريد إلكتروني.

لا يوجد شيء أيضًا في سجلات أخطاء Discourse.

احتوت المشاركات على استطلاع رأي، لكنني أشك في أن محتوى المنشور غير ذي صلة، ومع ذلك، أذكر ذلك هنا فقط في حالة أن يكون للاستطلاع أيضًا أي أهمية.

يمكن العثور على اختبار اليوم الفاشل هنا إذا كان يساعد أي شخص: https://greyarro.ws/t/do-you-own-a-drone-thats-not-on-the-what-do-you-fly-list/98146.json

يبدو أن مفتاح هذا الفشل ناتج عن إجراء إضافة لون للموظفين إلى المنشور الأول في الموضوع المجدول للنشر.

كل منشور آخر مجدول للنشر يرسل بريدًا إلكترونيًا بشكل جيد، وإضافة لون للموظفين تجعله يفشل في كل مرة.

3 إعجابات

يمكنني تكرار هذا. :raised_hand:

خطواتي الأساسية خطوة بخطوة:

  • اضبط email time window على دقيقة واحدة (اختياري، ولكنه يسرع الأمور)
  • بصفتك مسؤولاً، تأكد من أن المستخدم التجريبي يتابع المنشور الأول لفئة اختبار
  • بصفتك مسؤولاً، أنشئ موضوعًا في فئة Staff
  • استخدم مفتاح الربط الخاص بالمنشور لإضافة لون الموظفين إلى المنشور الأول/الوحيد
  • اضبط مؤقت الموضوع على جدولة النشر في فئة الاختبار في غضون دقيقة واحدة
  • احلم قليلاً بالآيس كريم وانتظر حتى يتم نشر الموضوع ولمدة دقيقة أخرى لتغطية نافذة البريد الإلكتروني
  • بصفتك مسؤولاً، تحقق من إشعارات المستخدم التجريبي، ثم تحقق من سجلات البريد الإلكتروني للموقع

النتيجة المتوقعة: يتلقى المستخدم التجريبي إشعارًا حول الموضوع المجدول ويوجد سجل بريد إلكتروني يشير إلى إرسال إشعار بريد إلكتروني مصاحب.

النتيجة الفعلية: يتلقى المستخدم التجريبي إشعارًا على الموقع ولكن لا يتم إرسال أي بريد إلكتروني.

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

هل له علاقة بتعديل لون الموظفين لنوع المنشور إلى ‘2’ (moderator_action) وعدم حساب ذلك في الكود؟

4 إعجابات

لقد عرفت أنني سأنسى إحدى خطوات إعادة الإنتاج :rofl:

هذا ملاحظة مثيرة للاهتمام:

إعجابَين (2)

نعم، بمجرد تحويل منشور إلى منشور للموظفين يصبح Post.types[:moderator_action]، أعتقد أنه يجب علينا الإخطار هنا، يبدو أن الإغفال كان خطأً. تمت إضافة أولوية متوسطة (في وقت ما خلال الأسابيع الأربعة القادمة) حتى يتمكن الفريق من إلقاء نظرة.

إعجابَين (2)

للمهتمين، هل يؤدي الرد على مستخدم وتعيين لون للموظفين على الرد أيضًا إلى عدم إرسال إشعار البريد الإلكتروني إلى هذا المستخدم؟