تحديث / خطوات إعادة الإنتاج (Discourse 3.6)
لقد قمت بإعادة إنتاج صريح لهذا باستخدام وحدة تحكم Rails للتأكد مما يحدث على مستوى المهمة. إليك ما نراه للمستخدم المتأثر:
site: hvac
now: 2025-10-15 17:23:01 UTC
disable_emails: “no”
disable_digest_emails: false
default_email_digest_frequency_minutes: 10080
ENV_DISABLE_EMAILS: nil
perform_deliveries: nil
smtp_address: “smtp.netcorecloud.net”
smtp_port: 587
– USER –
id: 42122
username: milnerlarry
active: true
suspended: false
email_digests: true
digest_after_minutes: 10080
eligible_by_time: true
– آخر 15 سجل بريد إلكتروني –
2025-10-01 | type=digest | bounced=false
2025-09-22 | type=digest | bounced=false
perform_deliveries_now: true
ثم عندما قمت ببناء الملخص يدويًا، تعتقد Discourse أنها تبنيه ولكنها تُرجع:
mail = UserNotifications.digest(u)
=> Built digest mail: subject=nil bytes=50
لذلك تعتقد Discourse أنها تبني الملخص، ولكنه فارغ في الواقع (subject=nil) - ويتم تخطيه بصمت عند تشغيل المهمة. لا يتم إنشاء أي سجل EmailLog، ولا يتم إرسال أي شيء.
هذا يؤكد:
- يتم إدراج المهمة بنجاح
- تم تمكين SMTP والتسليم
- تنتهي مهمة الملخص بدون خطأ لأن مُرسل البريد يُرجع ملخصًا فارغًا
تشغيل المهمة مباشرة باستخدام:
Jobs::UserEmail.new.execute(“type” => “digest”, “user_id” => u.id”)
ينتج نفس النتيجة - لا يتم إنشاء صف EmailLog جديد.
سبب محتمل:
يبدو أنه يتم تخطي الملخص بسبب شرط “ملخص فارغ” - ربما تغير شيء ما في كيفية تقييم Discourse 3.6 للمحتوى لتضمينه. يعرض عرض Admin → Emails → Digest Test الملخص بشكل صحيح، ولكن المهمة الخلفية لا ترى شيئًا لتضمينه.
ملخص:
مستخدم مؤهل
بريد إلكتروني نشط + SMTP صالح
عرض اختبار الملخص في الإدارة بشكل صحيح
تتخطى مهمة الملخص الخلفية بصمت (ملخص فارغ)
لم يتم تسجيل أي EmailLog أو محاولة إرسال
أود تأكيدًا من الفريق - هل هناك احتمال وجود تراجع في كيفية جمع UserNotifications.digest للمحتوى في 3.6؟