ملخص المحادثة مشكلة تغافل

يتم تخطي رسائل البريد الإلكتروني الملخصة للدردشة للمستخدمين الذين لديهم بريد إلكتروني صالح:

image

لقد أجريت بعض التحليلات وأعتقد أنني أعرف السبب:

هذا هو المكان الذي يحدث فيه التخطي في النهاية:

هذا لأن message.to فارغ.

message.to فارغ لأن الوسائط المرسلة إلى send_user_email لا تتضمن to_address ولا يتم إثراء هذا مطلقًا بالبريد الإلكتروني الأساسي للمستخدم، على سبيل المثال:

args: {"type"=>"chat_summary", "user_id"=>3, "force_respect_seen_recently"=>true, "current_site_id"=>"default"}

يتم استدعاء هذا بواسطة 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
إعجابَين (2)

شكراً جزيلاً على تصحيح الأخطاء يا @merefield، سأتأكد من أن عضو xp سيطلع على هذا الأمر قريباً.

إعجابَين (2)

لقد تعمقت قليلاً في هذا، وإذا اتبعنا المسار، فيجب أن يكون هناك إثراء:

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

بخلاف ذلك، فإن بريد ملخص الدردشة يعمل بالفعل على مواقع أخرى، لذلك من المحتمل أن يكون هناك شيء آخر يسبب مشكلة هنا.

أعتقد أن الحل المؤقت هو تمرير بريد المستخدم الإلكتروني إلى المهمة، مما سيعطينا المزيد من الثقة/الرؤية بأن البيانات الصحيحة موجودة منذ البداية:

3 إعجابات

تم الإغلاق لعدم تلقي ردود فعل على الإصلاح.