Script de migration de mailman2 vers discourse en cours

Bonjour,

Aujourd’hui, je commence à travailler sur un script Python pour migrer une liste de diffusion Mailman 2 (archives et config.pck) en utilisant uniquement l’API Discourse. Si cela vous intéresse, cela se déroule ici et je mettrai à jour ce sujet avec les progrès.

Toute remarque sur ce dont les gens ont besoin ou tout commentaire sur la meilleure façon de procéder est le bienvenu, bien sûr :slight_smile:

Salutations

digest_members : abandonné. Il n’est pas possible de demander un mode résumé par catégorie.

Peut-être que « Suivre le premier message » serait un équivalent approximatif, selon la fréquence des nouveaux fils de discussion/sujets et la fréquence à laquelle un résumé était effectivement envoyé sur la liste.

Une première version du script a été publiée à l’adresse Client Challenge. Elle fonctionne pour moi, j’espère qu’elle aidera également d’autres personnes. Si ce n’est pas le cas, faites-le-moi savoir et je m’efforcerai d’adapter le script.

Comment gère-t-il les listes où from_is_list est défini sur « Munge From » ou « Wrap Message » (ou lorsque les paramètres équivalents uniquement DMARC sont utilisés) ? Peut-il déterminer quel utilisateur a envoyé ces messages ?

Ce n’est pas le cas, je vais voir ce que cela nécessite.

Merci. Si cela aide, l’adresse e-mail de l’expéditeur d’origine apparaît souvent (toujours ?) dans l’en-tête « Cc: » du message, du moins lorsque from_is_list est Munge From.

from_is_list

from_is_list

  • Cela s’applique à tous les messages non résumés envoyés par la liste. Pour les paramètres qui s’appliquent uniquement aux messages dont le domaine de l’en-tête From: publie une politique DMARC p=reject ou p=quarantine, consultez la description de dmarc_moderation_action dans la section Filtres d’expéditeur.

Si défini sur Munge From, cela remplace l’adresse de l’en-tête From: par l’adresse de publication de la liste afin de réduire les problèmes découlant des politiques DMARC ou similaires du domaine d’origine de l’en-tête From:, et place l’adresse From: originale dans un en-tête Reply-To:.

Si défini sur Wrap Message, cela encapsule le message original en tant que sous-partie MIME d’un message externe avec les en-têtes From: et Reply-To: comme indiqué ci-dessus.

Je ne pense pas que Discourse propose une fonctionnalité similaire. Je n’ai vu aucun paramètre du site qui corresponde. J’ai parcouru plusieurs fois tous les paramètres liés aux e-mails ces derniers jours, dans le contexte d’une migration en cours depuis Mailman 2.

Peut-être que votre question est liée à l’importation des e-mails depuis les archives plutôt qu’à la mise en œuvre de la fonctionnalité dans Discourse ?

Discourse fonctionne essentiellement de la même manière que Mailman 2 avec l’option from_is_list = Munge From : avec ces paramètres, chaque email d’une liste Mailman a pour expéditeur « From: listname@example.com » (plutôt que « From: joebloggs@email.com ») ; de même, chaque notification par email provenant de Discourse provient de la même adresse de forum (noreply@forum.example.com ou autre).

Mais je ne demandais pas vraiment de reproduire cette fonctionnalité dans Discourse. [Edit - comme vous l’avez remarqué - je viens de voir votre deuxième réponse !]

Je voulais savoir : lorsque ce paramètre Mailman est activé, votre script importerait-il ces messages comme provenant d’un seul utilisateur Discourse (dont l’adresse email serait listname@example.com), ou serait-il en mesure d’identifier l’expéditeur original ?

J’espère que cela a du sens !

Merci pour l’explication. Le script mailman2discourse n’intervient pas ici, car il n’importe pas les messages. L’importation des messages est effectuée via l’importateur mbox de Discourse.

Je pense que cela définirait l’auteur de tous les courriels à listname@example.com. Je ne vois rien dans discourse/script/import_scripts/mbox/importer.rb qui suggérerait le contraire. Ce serait une fonctionnalité à ajouter, peut-être en la contrôlant via un champ use_reply_to_instead_of_from dans le fichier settings.yml ?

Je vois maintenant, merci.

Malheureusement, j’ai aussi configuré reply_goes_to_list sur « Cette liste » (ce qui modifie l’en-tête « Reply-To: »), nous devrons donc trouver une autre solution. Ou peut-être pas… Je vais poser une question dans l’autre sujet. Merci pour votre aide.

Pour la petite histoire, le script de migration a atteint un stade où il est utilisable et un tutoriel est disponible :