موقع Discourse الخاص بي هو عميل SSO لموقع WordPress الخاص بي. تم إنشاء مستخدمين لـ Discourse لأعضاء موقع WordPress بمجرد تسجيل دخولهم إلى WordPress. لم يقم سوى عدد قليل جدًا من المستخدمين بزيارة المنتدى فعليًا. لقد قمت بتعيين رسائل ملخص البريد الإلكتروني ليتم إرسالها يوميًا، وطبقت هذا الإعداد بشكل رجعي على جميع مستخدمي Discourse الحاليين. المشكلة التي أواجهها هي أنه يبدو أن هذه الملخصات تُرسل فقط إلى حسابات Discourse التي زارت المنتدى في وقت ما. أريد أن يبدأ المستخدمون في تلقي رسائل ملخص البريد الإلكتروني بمجرد إنشاء الحساب داخل Discourse. هل السلوك الذي ألاحظه بشأن رسائل البريد الإلكتروني هو السلوك الافتراضي؟ وإذا كان الأمر كذلك، فكيف يمكن تجاوزه؟
هل تعرف ما إذا كان على المستخدمين الرد على بريد تفعيل Discourse قبل تسجيل الدخول الأول من WordPress إلى Discourse؟ سيكون هذا هو الحال إذا لم تكن تستخدم طريقة التسجيل الافتراضية لـ WordPress على موقع WordPress الخاص بك. ما يعنيه هذا هو أن المستخدمين لن يتم وضع علامة active (نشط) على Discourse حتى يستجيبوا للبريد الإلكتروني. يُرسل بريد الملخص فقط إلى المستخدمين الذين تم وضع علامة active (نشط) عليهم على Discourse.
هناك قدر كبير من التخصيص في عملية التسجيل الخاصة بنا على WordPress، لكن جميع المستخدمين الذين تفحصهم في Discourse مضبوطة حالتهم على نشط. ومع ذلك، فإن حقلي آخر بريد إلكتروني وآخر ظهور فارغان.
أتساءل عما إذا كان قد يكون هناك خطأ برمجي؟ تبدو جميع إعداداتي صحيحة. الشيء الوحيد الذي يمكنني التفكير فيه هو أنني قمت بتعيين خيار “كبت رسائل البريد الإلكتروني الموجزة بعد عدد الأيام” إلى 3650، وبما أن المستخدمين لم يُشاهدوا من قبل، فإن بريدهم الإلكتروني يتم كتمه. كما قمت سابقًا بكتم البريد الإلكتروني لجميع المستخدمين لفترة، لكن هذا الإعداد غير مفعل حاليًا.
أعتقد أن هذا هو السبب. تظهر رسالة البريد الإلكتروني الملخصة ملخصًا للأشياء منذ آخر زيارة لك. وإذا لم تقم بزيارة من قبل، فلا يوجد أي شيء “منذ آخر زيارة لك”.
يبدو أن هذا هو سبب المشكلة. الكود يتحقق من ذلك:
.where("COALESCE(last_seen_at, '2010-01-01') >= CURRENT_TIMESTAMP - ('1 DAY'::INTERVAL * #{SiteSetting.suppress_digest_email_after_days})")
بما أن last_seen_at ستُرجع nil للمستخدم الجديد، فسيقوم الكود بالتحقق مما إذا كان ‘2010-01-01’ أكبر من 3650 يومًا مضت قبل إرسال البريد الإلكتروني. زيادة قيمة هذا الإعداد يجب أن تحل المشكلة بالنسبة لك. لكن المخاطرة في تعيين هذه القيمة لعدد كبير من الأيام هي أنك قد ترسل البريد الإلكتروني الموجز إلى مستخدمين لا يهتمون بالموقع.
ساعد ذلك قليلاً لكنه لم يحل المشكلة. للاختبار، قمت بضبط تردد رسائل البريد الإلكتروني الملخص على 30 دقيقة، والحد الأقصى للإشعارات اليومية على 1. كما ضبطت إعداد آخر ظهور على 365000. بشكل عام، تلقى المستخدمون الذين تمت إضافتهم إلى Discourse خلال الـ 17 يومًا الماضية رسائل بريد إلكتروني، وكذلك بعض المستخدمين الذين شوهدوا مؤخرًا لكن تم إنشاؤهم في وقت سابق. يمكنني تأكيد أن جميع المستخدمين مفعّلون -أو على الأقل يمكنني ذلك من عينة عشوائية من المستخدمين الذين لم يتلقوا رسائل بريد إلكتروني. لست متأكدًا من كيفية إصلاح ذلك. هل هناك أي شيء يمكنني إعادة ضبطه يدويًا؟
قمت ببعض البحث الإضافي، ويبدو أن تفضيلات البريد الإلكتروني الملخص في معظم الحسابات لا يتم تعيينها عند تغيير التكرار. لذا، إذا قمت بتغيير تكرار الملخص من 30 دقيقة إلى ساعة واحدة وأكدت لتطبيق التغيير على جميع الحسابات، فلا يبدو أن الإعداد يُطبق. وقد تأكدت من ذلك من خلال انتحال هوية الحسابات التي لا تتلقى هذه الرسائل. حيث ستظهر إعدادات التفضيل لديها أن الملخصات معطّلة.