هل تتطلب بريد الفئة الإلكتروني إعداد reply_by_email_enabled؟

الحالة

  • تم تعطيل reply_by_email_enabled، نحن لا نريد أن يرد الأشخاص عبر البريد الإلكتروني
  • فئة مخصصة للمسؤولين فقط لإشعارات من نظام خارجي
  • تم تعيين عنوان بريد إلكتروني للفئة
  • تم تمكين email_in
  • يتم إرسال رسائل البريد الإلكتروني إلى عنوان البريد الإلكتروني للفئة
  • ترتد رسائل البريد الإلكتروني مع خطأ BadDestinationAddress

السبب

بعد ساعة من التصحيح، صادفت ما يلي FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub

إصلاح: منع الردود على الفئات عند تعطيل الرد عبر البريد الإلكتروني (#33641)

عندما تكون إعدادات reply_by_email_enabled مضبوطة على false، لم نعد ندرج رابط رد في إشعارات البريد الإلكتروني. ومع ذلك، لا نمنع رسائل البريد الإلكتروني الفعلية إلى عنوان email_in مُعد مرتبط بفئة. يأخذ هذا التغيير في الاعتبار الإعداد في Email::Receiver#check_address.

والـ الكود المتأثر لم يعد سيعيد الفئة إذا لم يكن reply_by_email_enabled ممكناً.

    def self.check_address(address, include_verp = false)
      # التحقق من مجموعة/فئة فقط عند تمكين 'email_in'
      if SiteSetting.email_in
        group = Group.find_by_email(address)
        return group if group

        category = Category.find_by_email(address)
        return category if category && SiteSetting.reply_by_email_enabled? <-- تمت الإضافة
      end

لماذا؟ :scream:

لدي الكثير من الأسئلة:

  1. لماذا هذا التغيير؟ على الإطلاق؟ إنه يجعل النظام أقل مرونة فقط. إذا لم أرد أن يرسل الناس بريداً إلكترونياً إلى فئة، فسيكون بإمكاني ببساطة إزالة عنوان البريد الإلكتروني من الفئة؟
  2. لماذا تم تنفيذ هذا بهذه الطريقة؟
  • يبدو أن البريد الإلكتروني إلى المجموعات ليس مشكلة؟
  • إذا كان reply_by_email_enabled خاطئاً، فلا حاجة حتى للبحث عن الفئة؟
  • بعدم إعادة الفئة، يصبح الخطأ BadDestinationAddress وهو خطأ جداً وصعب التصحيح حقاً
  1. الإعداد الذي يعتمد عليه هذا فجأة، يُسمى رد عبر البريد الإلكتروني. هذا ليس ما أفعله.
  2. يظهر نفس الالتباس في عنوان طلب السحب (PR)، والذي يُسمى “منع الردود على الفئات”، وهذا ليس ما يتعلق به الأمر (في Discourse، “الرد على فئة” ليس ممكناً حتى).

بالإضافة إلى طريقة التنفيذ هذه، أفشل حقاً في رؤية الغاية.

لا يمكنني التفكير في أي موقف حيث لن يؤدي ببساطة إزالة عنوان البريد الإلكتروني من الفئة إلى إنجاز المهمة إذا أراد المرء منع الناس من إرسال بريد إلكتروني إلى فئة. وتأثير ذلك هو أنه أصبح من المستحيل الآن أن تستقبل الفئة رسائل بريد إلكتروني دون تمكين الرد عبر البريد الإلكتروني على مستوى الموقع.

إذا كان هناك سبب جيد حقاً أغفلته، فلا تتردد في إعادة التصنيف إلى Contribute > Feature

5 إعجابات

لقد اكتشفت هذا بنفسي وأنا أبحث فيه بالفعل.

أتفق على أن الإصلاح الذي تم في FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub كان سيئًا لأنه اعتمد على وأدخل تأثيرًا جانبيًا، لكننا لم نلاحظ ذلك لأن الاختبارات مرتبة بطريقة لا تتوفر فيها الشروط اللازمة لتشغيله. أنا أعمل على تصحيح ذلك الآن.

3 إعجابات

اقتراحي للإصلاح:

https://github.com/discourse/discourse/pull/37227

3 إعجابات

تم دمج هذا @RGJ - هل يمكنك التحقق بعد التحديث من أن الإعداد الخاص بك يعمل كما هو متوقع؟

إعجابَين (2)

نعم، يعمل بشكل رائع الآن! شكراً لك :slight_smile:

إعجابَين (2)