Mirroring di una mailing list di sola lettura in Discourse

:bookmark: Questa guida spiega come creare uno specchio di sola lettura di una mailing list usando Discourse. Copre le impostazioni del sito necessarie, la configurazione della categoria e il processo di iscrizione.

:person_raising_hand: Livello utente richiesto: Amministratore

Discourse può funzionare come archivio per una mailing list consentendo agli utenti registrati di utilizzare la maggior parte delle sue funzionalità. Questa guida ti illustrerà il processo per configurare il tuo specchio di mailing list.

:eyes: Vedi questo in azione sulla specchio della mailing list Ruby-Talk.

Sommario

  • Configurare le impostazioni del sito per la gestione delle email
  • Creare o modificare una categoria per la mailing list
  • Iscriversi alla mailing list
  • Comprendere come funziona il processo di mirroring

La seguente guida utilizza due indirizzi email come segnaposto. È necessario sostituirli con i tuoi indirizzi effettivi.

discourse@example.com è l’indirizzo per le email in arrivo sul tuo Discourse
mailing-list@foo.test è l’indirizzo di invio della mailing list[1]

Configurazione delle impostazioni del sito

  1. Se non hai un piano di hosting che preconfigura la posta elettronica in arrivo, configura il recupero POP3 o il recupero manuale tramite API per l’account associato al tuo indirizzo email di Discourse (ad esempio, discourse@example.com).

  2. Abilita le seguenti impostazioni del sito:

    • email_in: Consenti email in arrivo
    • enable_staged_users: Abilita gli utenti temporanei (fondamentale per il processo di mirroring)
  3. Impostazioni opzionali:

    • Imposta authorized_extensions su * o aggiungi estensioni di file specifiche per consentire i tipi di allegati necessari
    • Abilita always_show_trimmed_content per consentire a tutti gli utenti di vedere il contenuto tagliato (nascosto dietro un pulsante image)
    • Abilita display_name_on_posts e disabilita prioritize_username_in_ux per le preferenze di visualizzazione del nome

Creazione o modifica di una categoria

  1. Crea una nuova categoria o modifica una esistente per i post della mailing list.

  2. Configura le autorizzazioni della categoria:

    • Clicca sulla scheda “Sicurezza”, quindi su “Modifica autorizzazioni”
    • Rimuovi tutte le autorizzazioni esistenti
    • Aggiungi “everyone” con l’autorizzazione “See” (Visualizza)

Quando hai finito, dovrebbe apparire cosĂŹ:

  1. Configura le impostazioni della categoria:

    • Clicca sulla scheda “Impostazioni”
    • Abilita “Accetta email da utenti anonimi senza account”
    • Imposta “Indirizzo email in arrivo personalizzato” sull’indirizzo email della mailing list (ad esempio, mailing-list@foo.test)
    • Abilita “La categoria rispecchia la mailing list”
  2. Salva le impostazioni della categoria.

Iscrizione alla mailing list

  1. Iscriviti alla mailing list utilizzando il tuo indirizzo email di Discourse (ad esempio, discourse@example.com).

  2. Se la mailing list dispone di un’interfaccia web, assicurati che siano attive le seguenti impostazioni:

    • La consegna della posta è abilitata
    • La modalitĂ  digest è disattivata
    • Le email di promemoria della password sono disabilitate

Per Mailman 2, assicurati che:

  • “Mail delivery” (Consegna posta) sia su “Enabled” (Abilitata)
  • “Set Digest Mode” (Imposta ModalitĂ  Digest) sia su “Off” (Disattivata)
  • “Get password reminder email for this list?” (Ricevi email di promemoria password per questa lista?) sia impostato su “No”

Come funziona

L’abilitazione di “La categoria rispecchia la mailing list” modifica il modo in cui le email in arrivo vengono elaborate per quella specifica categoria:

  • Vengono consentite le email generate automaticamente, anche quando block_auto_generated_emails è abilitato
  • Tutti gli utenti possono pubblicare tramite email, ignorando l’impostazione email_in_allowed_groups
  • Le email in arrivo utilizzano l’Message-ID per trovare i post correlati, indipendentemente dall’impostazione find_related_post_with_key
  • L’interpretazione del Markdown è limitata ai blocchi di codice racchiusi tra tre apici inversi
  • Le email di rifiuto non vengono inviate per i post della mailing list

FAQ

D: Posso rispecchiare piĂš mailing list?
R: SĂŹ, crea una categoria separata per ciascuna mailing list e configurale come descritto sopra.

D: Gli utenti possono rispondere alle notifiche e pubblicare sulla mailing list?
R: No, le risposte alle notifiche vengono inviate a Discourse, non alla mailing list originale. Gli utenti non possono pubblicare direttamente sulla mailing list tramite Discourse.

D: Come posso impedire agli utenti di pubblicare sulla categoria rispecchiata tramite email?
R: Sebbene la categoria consenta la pubblicazione via email, puoi mantenere privato l’indirizzo email in arrivo per impedire pubblicazioni non autorizzate.


  1. ovvero, le persone inviano a questo indirizzo per pubblicare sulla lista, e appare anche nelle righe A:/CC: delle email inviate dalla lista ai membri ↩︎

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?