Hoje começo a trabalhar em um script Python para migrar uma lista de discussão do Mailman 2 (arquivos e config.pck) usando apenas a API do Discourse. Se alguém estiver interessado, o projeto está acontecendo aqui e vou atualizar este tópico com os avanços.
Comentários sobre o que as pessoas precisam ou sugestões sobre como melhorar esse processo são muito bem-vindos, claro
digest_members: descartado. Não é possível solicitar um modo de resumo com base em cada categoria.
Talvez “Assistir à primeira postagem” seja uma equivalência aproximada, dependendo da frequência com que surgem novos tópicos e da frequência com que, na prática, um resumo era enviado na lista.
Uma primeira versão do script foi publicada em Client Challenge. Funciona para mim, espero que também ajude outros. Se não funcionar, me avise e tentarei adaptar o script.
Como ele lida com listas onde from_is_list está definido como Munge From ou Wrap Message (ou quando são usadas configurações equivalentes apenas para DMARC)? Ele consegue identificar qual usuário enviou essas mensagens?
Obrigado. Se ajudar, o endereço de e-mail do remetente original aparece frequentemente (sempre?) no cabeçalho “Cc:” do e-mail, pelo menos quando from_is_list é Munge From.
Isso se aplica a todas as mensagens não em formato de resumo enviadas pela lista. Para configurações que se aplicam apenas a mensagens cujo domínio do campo From: publica uma política DMARC p=reject ou p=quarantine, consulte a descrição de dmarc_moderation_action na seção Filtros de remetente.
Se definido como Munge From, ele substitui o endereço do cabeçalho From: pelo endereço de postagem da lista para mitigar problemas decorrentes das políticas DMARC ou similares do domínio original do campo From: e coloca o endereço original do campo From: em um cabeçalho Reply-To:.
Se definido como Wrap Message, ele encapsula a mensagem original como uma subparte MIME de uma mensagem externa com cabeçalhos From: e Reply-To: conforme descrito acima.
Acredito que o Discourse não ofereça um recurso semelhante. Não vi nenhuma configuração do site que corresponda a isso. Além disso, revi todas as configurações relacionadas ao e-mail várias vezes nos últimos dias, no contexto de uma migração em andamento do Mailman2.
O Discourse funciona essencialmente da mesma maneira que o Mailman 2 com from_is_list = Munge From — com essas configurações, cada e-mail de lista do Mailman tem ‘De: listname@example.com’ (em vez de ‘De: joebloggs@email.com’) — e, de forma semelhante, cada notificação por e-mail do Discourse vem do mesmo endereço de e-mail do fórum (noreply@forum.example.com ou outro).
Mas eu não estava realmente perguntando sobre replicar o recurso no Discourse. [Edição - como você já percebeu - acabei de ver sua segunda resposta!]
Eu quis dizer: quando essa configuração do Mailman está ativada, seu script importaria essas mensagens como vindo de um único usuário do Discourse (cujo endereço de e-mail é listname@example.com), ou ele seria capaz de identificar o remetente original?
Obrigado pela explicação. O script mailman2discourse não desempenha nenhum papel nisso, pois não importa as mensagens. A importação das mensagens é feita por meio do importador mbox do Discourse.
Acho que ele definiria o autor de todos os e-mails como listname@example.com. Não vejo nada em discourse/script/import_scripts/mbox/importer.rb que sugira o contrário. Seria um recurso a ser adicionado e talvez controlado por meio de um campo use_reply_to_instead_of_from no arquivo settings.yml?
Infelizmente, também tenho reply_goes_to_list definido como “Esta lista” (o que altera o cabeçalho “Reply-To:”), então teríamos que pensar em outra solução. Ou talvez não… Vou fazer uma pergunta no outro tópico. Obrigado pela sua ajuda.