يتم تخطي رسائل البريد الإلكتروني الملخصة للدردشة للمستخدمين الذين لديهم بريد إلكتروني صالح:
لقد أجريت بعض التحليلات وأعتقد أنني أعرف السبب:
هذا هو المكان الذي يحدث فيه التخطي في النهاية:
هذا لأن message.to فارغ.
message.to فارغ لأن الوسائط المرسلة إلى send_user_email لا تتضمن to_address ولا يتم إثراء هذا مطلقًا بالبريد الإلكتروني الأساسي للمستخدم، على سبيل المثال:
يتم استدعاء هذا بواسطة Chat Mailer، وستلاحظ أن to_address مفقود:
وربما يكون هذا جيدًا، ولكن بحلول الوقت الذي تصل فيه إلى قمة send_user_email، أعتقد أنه يجب إثراء to_address ببريد المستخدم الإلكتروني حتى يتم تمريره إلى الأمام، ويتم منح مرسل البريد الإلكتروني حق الوصول إلى هذه الخاصية وينجح إرسال البريد الإلكتروني.
عندما أضفت هذه الرقعة الصغيرة إلى send_user_email، تختفي المشكلة:
# خطأ أساسي: إذا لم نقم بتعيين to_address، فلن يتم إرسال البريد الإلكتروني في النهاية وسيتم تخطيه.
# هذا خطأ أساسي وسنحتاج إلى رفعه في Meta.
if args[:to_address].blank? && user&.primary_email&.email
args[:to_address] = user&.primary_email&.email
end
لقد تعمقت قليلاً في هذا، وإذا اتبعنا المسار، فيجب أن يكون هناك إثراء:
يبدأ من البريد الإلكتروني هنا ثم يستدعي امتداد إشعارات المستخدم الذي يثري ببريد المستخدم الإلكتروني هنا ثم يمرره إلى مساعد بناء البريد الإلكتروني هنا وأخيرًا يضبط العنوان في منشئ الرسالة هنا قبل إرساله.
بخلاف ذلك، فإن بريد ملخص الدردشة يعمل بالفعل على مواقع أخرى، لذلك من المحتمل أن يكون هناك شيء آخر يسبب مشكلة هنا.
أعتقد أن الحل المؤقت هو تمرير بريد المستخدم الإلكتروني إلى المهمة، مما سيعطينا المزيد من الثقة/الرؤية بأن البيانات الصحيحة موجودة منذ البداية: