Fare il mirror di una mailing list in sola lettura in 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 Mi Piace

Ciò significa che “se un utente qualsiasi conosce l’indirizzo email in arrivo, può pubblicare in questa categoria”? Questo può essere evitato non comunicando quell’indirizzo a nessuno, giusto?

Ma, presumibilmente, se qualcuno riceve una notifica via email, può rispondere. Quella risposta viene inviata a Discourse come post o alla mailing list?

2 Mi Piace

Queste sono buone domande.

Sì, penso sia possibile se conoscono l’indirizzo email in arrivo e falsificano l’indirizzo From in modo che corrisponda all’indirizzo delle mailing list.

Vorrei dire di no, ma non ne sono sicuro al 100%. Quindi, forse. Per favore, prova e fammi sapere. È possibile che richieda anche la falsificazione dell’indirizzo del mittente.

Viene sicuramente inviata a Discourse.

3 Mi Piace

Ho un sito che riceve un gruppo Google inoltrato a una categoria con accetta email da anonimi e rispecchia una mailing list impostati ma sta ancora rifiutando la posta con Email::Receiver::UserNotFoundError

C’è qualcos’altro che potrebbe innescare questo?

2 Mi Piace

Hai abilitato gli utenti in staging?

4 Mi Piace

No. Gli utenti in staging erano disattivati. Quindi immagino che debbano essere attivati affinché funzioni? (Ha senso che lo sia…) Quindi forse dovrebbe esserci un controllo per questo quando si tenta di attivarlo?

2 Mi Piace

Non sono sicuro, ma è la mia migliore ipotesi.

MODIFICA c’è un solo posto dove viene generato questo errore e sembra così:

raise UserNotFoundError unless SiteSetting.enable_staged_users

4 Mi Piace

Dovrò provarlo, ma presumo che parecchie persone cercheranno di rispondere. Potrebbe essere utile avere una o piÚ di queste opzioni:

  1. Non inviare email anche se qualcuno sta monitorando questa categoria. Forse dare loro una notifica (o un messaggio una tantum) dicendo che se desiderano la consegna via email di questa lista, dovrebbero {fare i passi necessari per iscriversi direttamente alla lista}.

  2. Consentire all’amministratore del sito di definire l’indirizzo di risposta quando viene inviata un’email da una categoria di mirror di mailing list. (Su base per categoria, naturalmente.) Quindi, gli utenti potrebbero iscriversi a quella lista senza consegna abilitata, ricevere notifiche da Discourse e, se rispondono, quella risposta andrebbe effettivamente alla lista originale.

  3. Un’opzione “inoltra risposte alla categoria”, dove quando qualcuno risponde, viene creato un argomento collegato in una categoria diversa. Ad esempio, la categoria “Lista Annunci” è un mirror di una mailing list, e poi “Discussione sugli Annunci” per le risposte. Il titolo necessita di qualche aggiustamento. :slight_smile:

3 Mi Piace

La guida lo rende chiaro @gerhard?

3 Mi Piace

No, non lo era, ma ora lo è.

5 Mi Piace

Grazie! Questo in precedenza mi confondeva, perchĂŠ assumevo che la gestione speciale qui gestisse in modo speciale anche gli utenti in staging (forse creandoli solo per i post in questa categoria?).

4 Mi Piace

È possibile renderlo bidirezionale creando un account su Discourse che sia membro del Google Group? Quindi i post sui forum verrebbero inviati a GG come se fosse solo un altro utente della mailing list (dovremmo rifiutare tutta la posta in arrivo da quell’utente per evitare un loop). Chiedo questo come modo per eseguire Discourse e GG in parallelo mentre gli utenti passano.

Sto rispecchiando con successo una mailing list di Google Gruppi, ma non riconosce le risposte agli argomenti. Mi ritrovo con pubblicazioni di Argomento Google 1 e poi separatamente Re: Argomento Google 1. Esiste un modo per far riconoscere i thread degli argomenti?