Espelhando uma mailing list somente leitura no Discourse

:bookmark: Este guia explica como criar um espelho somente leitura de uma lista de discussão usando o Discourse. Ele cobre as configurações de site necessárias, a configuração da categoria e o processo de assinatura.

:person_raising_hand: Nível de usuário necessário: Administrador

O Discourse pode funcionar como um arquivo para uma lista de discussão, permitindo que usuários registrados utilizem a maioria de seus recursos. Este guia irá guiá-lo pelo processo de configuração do seu próprio espelho de lista de discussão.

:eyes: Veja isso em ação na lista de discussão espelho do Ruby-Talk.

Resumo

  • Configurar as configurações do site para manipulação de e-mail
  • Criar ou modificar uma categoria para a lista de discussão
  • Assinar a lista de discussão
  • Entender como o processo de espelhamento funciona

O guia a seguir usa dois endereços de e-mail como espaços reservados. Você precisa substituí-los por seus endereços reais.

discourse@example.com é o endereço para e-mails de entrada no seu Discourse
mailing-list@foo.test é o endereço de envio da lista de discussão[1]

Configurando as configurações do site

  1. Se você não estiver em um plano de hospedagem que pré-configure o e-mail de entrada, configure a coleta de e-mail POP3 ou a coleta manual via API para a conta associada ao seu endereço de e-mail do Discourse (por exemplo, discourse@example.com).

  2. Ative as seguintes configurações do site:

    • email_in: Permitir e-mails de entrada
    • enable_staged_users: Habilitar usuários em palco (crucial para o processo de espelhamento)
  3. Configurações opcionais:

    • Defina authorized_extensions como * ou adicione extensões de arquivo específicas para permitir os tipos de anexo necessários
    • Ative always_show_trimmed_content para permitir que todos os usuários vejam conteúdo truncado (oculto atrás de um botão image)
    • Ative display_name_on_posts e desative prioritize_username_in_ux para preferências de exibição de nome

Criando ou modificando uma categoria

  1. Crie uma nova categoria ou edite uma existente para as postagens da lista de discussão.

  2. Configure as permissões da categoria:

    • Clique na aba “Segurança” e depois em “Editar Permissões”
    • Remova todas as permissões existentes
    • Adicione “todos” com permissão de “Ver”

Quando terminar, deve ficar assim:

  1. Configure as configurações da categoria:

    • Clique na aba “Configurações”
    • Ative “Aceitar e-mails de usuários anônimos sem contas”
    • Defina “Endereço de e-mail de entrada personalizado” para o endereço de e-mail da lista de discussão (por exemplo, mailing-list@foo.test)
    • Ative “Categoria espelha lista de discussão”
  2. Salve as configurações da categoria.

Assinando a lista de discussão

  1. Assine a lista de discussão usando seu endereço de e-mail do Discourse (por exemplo, discourse@example.com).

  2. Se a lista de discussão tiver uma interface web, verifique as seguintes configurações:

    • Entrega de e-mail ativada
    • Modo de resumo desativado
    • E-mails de lembrete de senha desativados

Para o Mailman 2:

  • “Entrega de E-mail” deve estar como “Ativada”
  • “Definir Modo de Resumo” deve estar como “Desativado”
  • “Receber e-mail de lembrete de senha para esta lista?” deve estar definido como “Não”

Como funciona

Ativar “Categoria espelha lista de discussão” altera como os e-mails de entrada são processados para aquela categoria específica:

  • E-mails gerados automaticamente são permitidos, mesmo quando block_auto_generated_emails está ativado
  • Todos os usuários podem postar via e-mail, ignorando a configuração email_in_allowed_groups
  • E-mails de entrada usam o Message-ID para encontrar postagens relacionadas, independentemente da configuração find_related_post_with_key
  • A interpretação de Markdown é limitada a blocos de código entre aspas triplas
  • E-mails de rejeição não são enviados para postagens de listas de discussão

Perguntas Frequentes

P: Posso espelhar várias listas de discussão?
R: Sim, crie uma categoria separada para cada lista de discussão e configure-as conforme descrito acima.

P: Os usuários podem responder a notificações e postar na lista de discussão?
R: Não, as respostas às notificações são enviadas para o Discourse, não para a lista de discussão original. Os usuários não podem postar diretamente na lista de discussão através do Discourse.

P: Como posso impedir que os usuários postem na categoria espelhada por e-mail?
R: Embora a categoria permita postagem por e-mail, você pode manter o endereço de e-mail de entrada privado para evitar postagens não autorizadas.


  1. ou seja, as pessoas enviam para este endereço para postar na lista, e ele também aparece nas linhas Para:/CC: de e-mails enviados pela lista aos membros ↩︎

31 curtidas

Isso significa que “se qualquer usuário souber o endereço de e-mail de entrada, ele poderá postar nesta categoria”? Isso pode ser evitado não contando esse endereço a ninguém, certo?

Mas, presumivelmente, se alguém receber uma notificação por e-mail, poderá responder. Essa resposta é enviada para o Discourse como uma postagem ou para a lista de e-mails?

2 curtidas

Essas são boas perguntas.

Sim, acho que é possível se eles conhecerem o endereço de e-mail de entrada e falsificarem o endereço From para que ele corresponda ao endereço da lista de e-mails.

Eu gostaria de dizer não, mas não tenho 100% de certeza sobre isso. Então, talvez. Por favor, tente e me diga. É possível que também exija a falsificação do endereço do remetente.

É definitivamente enviada para o Discourse.

3 curtidas

Tenho um site que está recebendo um grupo do Google encaminhado para uma categoria com aceitar e-mails de anônimos e espelha uma lista de e-mail definidos, mas ainda está rejeitando e-mails com Email::Receiver::UserNotFoundError

Existe algo mais que possa acionar isso?

2 curtidas

Você habilitou usuários em estágio?

4 curtidas

Não. Usuários em estágio estava desativado. Então, imagino que deva estar ativado para funcionar? (Faz sentido que esteja…) Então, talvez deva haver uma verificação para isso quando você tentar ativá-lo?

2 curtidas

Não tenho certeza, mas é o meu melhor palpite.

EDIT: existe apenas um lugar onde esse erro é gerado e ele se parece com isto:

raise UserNotFoundError unless SiteSetting.enable_staged_users

4 curtidas

Terei que experimentar, mas minha suposição é que muitas pessoas tentarão responder. Pode ser bom ter uma ou mais destas opções:

  1. Não enviar e-mail, mesmo que alguém esteja acompanhando esta categoria. Possivelmente, dar a eles uma notificação (ou uma mensagem única) dizendo que, se quiserem entrega de e-mail desta lista, eles devem {fazer o que for necessário para se inscrever diretamente na lista}.

  2. Permitir que o administrador do site defina o endereço de resposta quando o e-mail for enviado de uma categoria espelho de lista de e-mails. (Por categoria, é claro.) Então, os usuários poderiam se inscrever nessa lista sem entrega ativada, receber notificações do Discourse e, se responderem, essa resposta realmente iria para a lista original.

  3. Uma opção de “desviar respostas para a categoria”, onde, quando alguém responde, um tópico vinculado é criado em uma categoria diferente. Por exemplo, a categoria Lista de Anúncios é um espelho de lista de e-mails e, em seguida, Discussão Sobre os Anúncios para respostas. O título precisa de algum trabalho. :slight_smile:

3 curtidas

O guia deixa isso claro @gerhard?

3 curtidas

Não, não fez, mas agora faz.

5 curtidas

Obrigado! Isso me confundiu anteriormente, porque assumi que o tratamento especial aqui também tratava usuários em estágio de alguma forma (possivelmente criando-os apenas para postagens nesta categoria?).

4 curtidas

Isso pode ser feito bidirecionalmente criando uma conta no Discourse que seja membro do Google Group? Em seguida, as postagens nos fóruns seriam enviadas para o GG como se fosse apenas mais um usuário na lista de e-mails (precisaríamos rejeitar todos os e-mails recebidos desse usuário para evitar um loop). Pergunto isso como uma forma de executar o Discourse e o GG em paralelo enquanto os usuários migram.

Estou espelhando com sucesso uma lista de e-mails do Google Groups, mas ela não reconhece as respostas aos tópicos. Acabo com postagens de Tópico Google 1 e depois, separadamente, Re: Tópico Google 1. Existe alguma maneira de fazer com que ele reconheça as sequências de tópicos?