نسخ قائمة بريدية للقراءة فقط في Discourse

:bookmark: يشرح هذا الدليل كيفية إنشاء نسخة مرآة للقراءة فقط لقائمة بريدية باستخدام Discourse. ويغطي إعدادات الموقع الضرورية وتكوين الفئة وعملية الاشتراك.

:person_raising_hand: مستوى المستخدم المطلوب: مسؤول

يمكن أن يعمل Discourse كأرشيف لقائمة بريدية مع السماح للمستخدمين المسجلين بالاستفادة من معظم ميزاته. سيرشدك هذا الدليل خلال عملية إعداد نسخة مرآة لقائمة بريدية خاصة بك.

:eyes: شاهد هذا قيد التنفيذ على النسخة المرآة لقائمة بريد Ruby-Talk البريدية.

ملخص

  • تكوين إعدادات الموقع للتعامل مع البريد الإلكتروني
  • إنشاء أو تعديل فئة لمنشورات القائمة البريدية
  • الاشتراك في القائمة البريدية
  • فهم كيفية عمل عملية النسخ المتطابق

يستخدم الدليل التالي عنواني بريد إلكتروني كعناصر نائبة. تحتاج إلى استبدالهما بعناوينك الفعلية.

discourse@example.com هو العنوان للرسائل الإلكترونية الواردة على Discourse الخاص بك
mailing-list@foo.test هو عنوان الإرسال للقائمة البريدية[1]

تكوين إعدادات الموقع

  1. إذا لم تكن تستخدم خطة استضافة تقوم بتكوين البريد الإلكتروني الوارد مسبقًا، فقم بإعداد الاستقصاء عبر POP3 أو الاستقصاء اليدوي عبر واجهة برمجة التطبيقات (API) للحساب المرتبط بعنوان البريد الإلكتروني لـ Discourse الخاص بك (على سبيل المثال، discourse@example.com).

  2. قم بتمكين إعدادات الموقع التالية:

    • email_in: السماح بالبريد الإلكتروني الوارد
    • enable_staged_users: تمكين المستخدمين المرحليين (ضروري لعملية النسخ المتطابق)
  3. الإعدادات الاختيارية:

    • قم بتعيين authorized_extensions على * أو أضف امتدادات ملفات محددة للسماح بأنواع المرفقات التي تحتاجها
    • قم بتمكين always_show_trimmed_content للسماح لجميع المستخدمين برؤية المحتوى المقتطع (المخفي خلف زر image)
    • قم بتمكين display_name_on_posts وتعطيل prioritize_username_in_ux لتفضيلات عرض الاسم

إنشاء أو تعديل فئة

  1. أنشئ فئة جديدة أو قم بتعديل فئة موجودة لمنشورات القائمة البريدية.

  2. تكوين أذونات الفئة:

    • انقر فوق علامة التبويب “الأمان” (Security)، ثم “تحرير الأذونات” (Edit Permissions)
    • إزالة جميع الأذونات الحالية
    • إضافة “الجميع” (everyone) مع إذن “عرض” (See)

عند الانتهاء، يجب أن تبدو كما يلي:

  1. تكوين إعدادات الفئة:

    • انقر فوق علامة التبويب “الإعدادات” (Settings)
    • تمكين “قبول رسائل البريد الإلكتروني من المستخدمين المجهولين الذين ليس لديهم حسابات” (Accept emails from anonymous users with no accounts)
    • تعيين “عنوان البريد الإلكتروني الوارد المخصص” (Custom incoming email address) إلى عنوان البريد الإلكتروني للقائمة البريدية (على سبيل المثال، mailing-list@foo.test)
    • تمكين “الفئة تعكس القائمة البريدية” (Category mirrors mailing list)
  2. حفظ إعدادات الفئة.

الاشتراك في القائمة البريدية

  1. اشترك في القائمة البريدية باستخدام عنوان البريد الإلكتروني لـ Discourse الخاص بك (على سبيل المثال، discourse@example.com).

  2. إذا كانت القائمة البريدية تحتوي على واجهة ويب، فتأكد من الإعدادات التالية:

    • تمكين تسليم البريد
    • تم إيقاف تشغيل وضع الملخص (Digest mode)
    • تم تعطيل رسائل البريد الإلكتروني لتذكير كلمة المرور

بالنسبة لـ Mailman 2:

  • “تسليم البريد” (Mail delivery) مضبوط على “مُمكّن” (Enabled)
  • “تعيين وضع الملخص” (Set Digest Mode) مضبوط على “إيقاف” (Off)
  • “الحصول على بريد إلكتروني لتذكير كلمة المرور لهذه القائمة؟” (Get password reminder email for this list?) مضبوط على “لا” (No)

كيف يعمل

يغير تمكين “الفئة تعكس القائمة البريدية” كيفية معالجة الرسائل الإلكترونية الواردة لتلك الفئة المحددة:

  • يُسمح بالرسائل الإلكترونية التي تم إنشاؤها تلقائيًا، حتى عند تمكين block_auto_generated_emails
  • يمكن لجميع المستخدمين النشر عبر البريد الإلكتروني، متجاهلين إعداد email_in_allowed_groups
  • تستخدم الرسائل الإلكترونية الواردة Message-ID للعثور على المنشورات ذات الصلة، بغض النظر عن إعداد find_related_post_with_key
  • يقتصر تفسير Markdown على الكتل البرمجية المحاطة بثلاث علامات اقتباس خلفية (backticks)
  • لا يتم إرسال رسائل الرفض لمنشورات القائمة البريدية

الأسئلة الشائعة

س: هل يمكنني عكس أكثر من قائمة بريدية واحدة؟
ج: نعم، أنشئ فئة منفصلة لكل قائمة بريدية وقم بتكوينها كما هو موضح أعلاه.

س: هل يمكن للمستخدمين الرد على الإشعارات والنشر في القائمة البريدية؟
ج: لا، يتم إرسال الردود على الإشعارات إلى Discourse، وليس إلى القائمة البريدية الأصلية. لا يمكن للمستخدمين النشر مباشرة إلى القائمة البريدية من خلال Discourse.

س: كيف يمكنني منع المستخدمين من النشر في الفئة المنسوخة عبر البريد الإلكتروني؟
ج: على الرغم من أن الفئة تسمح بالنشر عبر البريد الإلكتروني، يمكنك الاحتفاظ بعنوان البريد الإلكتروني الوارد خاصًا لمنع النشر غير المصرح به.


  1. أي يرسل الأشخاص إلى هذا العنوان للنشر في القائمة، ويظهر أيضًا في سطور إلى:/نسخة إلى: من رسائل البريد الإلكتروني المرسلة من القائمة إلى الأعضاء ↩︎

31 إعجابًا

هل هذا يعني “إذا كان أي مستخدم يعرف عنوان البريد الإلكتروني الوارد، فيمكنه النشر في هذه الفئة”؟ يمكن منع ذلك عن طريق عدم إخبار أي شخص بهذا العنوان، أليس كذلك؟

ولكن، يُفترض أنه إذا تلقى شخص ما إشعارًا عبر البريد الإلكتروني، فيمكنه الرد. هل يتم إرسال هذا الرد إلى Discourse كمنشور، أم إلى القائمة البريدية؟

إعجابَين (2)

هذه أسئلة جيدة.

نعم، أعتقد أن هذا ممكن إذا كانوا يعرفون عنوان البريد الإلكتروني الوارد وقاموا بانتحال عنوان From بحيث يتطابق مع عنوان قوائم البريد.

أريد أن أقول لا، لكنني لست متأكدًا بنسبة 100٪ بشأن هذا. لذا، ربما. يرجى المحاولة وإخباري. من الممكن أن يتطلب ذلك أيضًا انتحال عنوان المرسل.

يتم إرساله بالتأكيد إلى Discourse.

3 إعجابات

لدي موقع يتلقى مجموعة Google مُعاد توجيهها إلى فئة مع تعيين قبول رسائل البريد الإلكتروني من مجهول و يعكس قائمة بريدية ولكنها لا تزال ترفض البريد الإلكتروني باستخدام Email::Receiver::UserNotFoundError

هل هناك شيء آخر يمكن أن يؤدي إلى هذا؟

إعجابَين (2)

هل قمت بتمكين المستخدمين المرحليين؟

4 إعجابات

لا. كان المستخدمون المرحليون متوقفين. لذا أعتقد أنه يجب تشغيله لكي يعمل؟ (من المنطقي أن يكون كذلك…) لذا ربما يجب أن يكون هناك فحص لذلك عند محاولة تمكينه؟

إعجابَين (2)

لست متأكدًا، لكن هذا هو أفضل تخمين لدي.

تعديل: هناك مكان واحد فقط حيث يتم طرح هذا الخطأ ويبدو كالتالي:

raise UserNotFoundError unless SiteSetting.enable_staged_users

4 إعجابات

سأضطر إلى تجربته، لكن افتراضي هو أن عددًا غير قليل من الأشخاص سيحاولون الرد. قد يكون من الجيد أن يكون لديك خيار واحد أو أكثر من هذه الخيارات:

  1. لا ترسل بريدًا إلكترونيًا حتى لو كان شخص ما يراقب هذه الفئة. ربما تعطيهم إشعارًا (أو رسالة لمرة واحدة) تفيد بأنه إذا كانوا يريدون تسليم البريد الإلكتروني لهذه القائمة، فيجب عليهم {القيام بأي خطوات لازمة للاشتراك في القائمة مباشرة}.

  2. السماح لمسؤول الموقع بتحديد عنوان الرد عند إرسال البريد الإلكتروني من فئة مرآة القائمة البريدية. (على أساس كل فئة، بالطبع.) بعد ذلك، يمكن للمستخدمين الاشتراك في تلك القائمة دون تمكين التسليم، والحصول على إشعارات من Discourse، وإذا ردوا، فإن هذا الرد سيذهب بالفعل إلى القائمة الأصلية.

  3. خيار “إعادة توجيه الردود إلى فئة”، حيث عند الرد، يتم إنشاء موضوع مرتبط في فئة مختلفة. على سبيل المثال، فئة قائمة الإعلانات هي مرآة قائمة بريدية، ثم مناقشة حول الإعلانات للردود. يحتاج العنوان إلى بعض العمل. :slight_smile:

3 إعجابات

هل يوضح الدليل هذا يا @gerhard؟

3 إعجابات

لا، لم يحدث ذلك، ولكنه يحدث الآن.

5 إعجابات

شكرًا! هذا الأمر أربكني سابقًا، لأنني افترضت أن المعالجة الخاصة هنا كانت تعالج المستخدمين المرحليين بطريقة خاصة أيضًا (ربما تنشئهم فقط للمنشورات في هذه الفئة؟).

4 إعجابات

هل يمكن جعل هذا ثنائي الاتجاه عن طريق إنشاء حساب على Discourse يكون عضوًا في Google Group؟ عندها سيتم إرسال المنشورات إلى المنتديات إلى GG كما لو كان مجرد مستخدم آخر في القائمة البريدية (سنحتاج إلى رفض جميع رسائل البريد الإلكتروني الواردة من هذا المستخدم لتجنب حلقة). أسأل هذا كطريقة لتشغيل Discourse و GG بالتوازي أثناء انتقال المستخدمين.

أقوم بنسخ قائمة بريد Google Group بنجاح، لكنها لا تتعرف على ردود المواضيع. أجد نفسي مع منشورات موضوع Google 1 ثم بشكل منفصل رد: موضوع Google 1. هل هناك طريقة لجعلها تتعرف على سلاسل المواضيع؟