عكس قائمة بريدية للقراءة فقط في Discourse

:bookmark: This guide explains how to create a read-only mirror of a mailing list using Discourse. It covers the necessary site settings, category configuration, and subscription process.

:person_raising_hand: Required user level: Administrator

Discourse can function as an archive for a mailing list while allowing registered users to utilize most of its features. This guide will walk you through the process of setting up your own mailing list mirror.

:eyes: See this in our action on the Ruby-Talk mailing list mirror.

Summary

  • Configure site settings for email handling
  • Create or modify a category for the mailing list
  • Subscribe to the mailing list
  • Understand how the mirroring process works

The following guide uses two email addresses as placeholders. You need to replace them with your actual addresses.

discourse@example.com is address for incoming emails on your Discourse
mailing-list@foo.test is the submission address of the mailing list[1]

Configuring site settings

  1. If you’re not on a hosting plan that pre-configures incoming email, set up POP3 polling or manual polling via API for the account associated with your Discourse email address (e.g., discourse@example.com).

  2. Enable the following site settings:

    • email_in: Allow incoming emails
    • enable_staged_users: Enable staged users (crucial for the mirroring process)
  3. Optional settings:

    • Set authorized_extensions to * or add specific file extensions to allow the attachment types you need
    • Enable always_show_trimmed_content to allow all users to see trimmed content (hidden behind a image button)
    • Enable display_name_on_posts and disable prioritize_username_in_ux for name display preferences

Creating or modifying a category

  1. Create a new category or edit an existing one for the mailing list posts.

  2. Configure category permissions:

    • Click the “Security” tab, then “Edit Permissions”
    • Remove all existing permissions
    • Add “everyone” with “See” permission

When you’re done, it should look like this:

  1. Configure category settings:

    • Click the “Settings” tab
    • Enable “Accept emails from anonymous users with no accounts”
    • Set “Custom incoming email address” to the mailing list’s email address (e.g., mailing-list@foo.test)
    • Enable “Category mirrors mailing list”
  2. Save the category settings.

Subscribing to the mailing list

  1. Subscribe to the mailing list using your Discourse email address (e.g., discourse@example.com).

  2. If the mailing list has a web interface, ensure the following settings:

    • Mail delivery is enabled
    • Digest mode is off
    • Password reminder emails are disabled

For Mailman 2, make sure:

  • “Mail delivery” is “Enabled”
  • “Set Digest Mode” is “Off”
  • “Get password reminder email for this list?” is set to “No”

How it works

Enabling “Category mirrors a mailing list” changes how incoming emails are processed for that specific category:

  • Auto-generated emails are allowed, even when block_auto_generated_emails is enabled
  • All users can post via email, ignoring the email_in_min_trust setting
  • Incoming emails use the Message-ID to find related posts, regardless of the find_related_post_with_key setting
  • Markdown interpretation is limited to code blocks enclosed in triple backticks
  • Rejection emails are not sent for mailing list posts

FAQs

Q: Can I mirror multiple mailing lists?
A: Yes, create a separate category for each mailing list and configure them as described above.

Q: Can users reply to notifications and post to the mailing list?
A: No, replies to notifications are sent to Discourse, not the original mailing list. Users cannot post directly to the mailing list through Discourse.

Q: How can I prevent users from posting to the mirrored category via email?
A: While the category allows email posting, you can keep the incoming email address private to prevent unauthorized posting.


  1. i.e. people send to this address to post to the list, and it also appears on the To:/CC: lines of emails sent by the list to members ↩︎

Last edited by @supermathie 2024-10-18T20:01:40Z

Check documentPerform check on document:
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. هل هناك طريقة لجعلها تتعرف على سلاسل المواضيع؟