Retour : Page Principale > sommaire aide > sommaire aide-mémos

Procédure de migration d'une liste de discussion de yahoo vers tela


Robots Yahoo avec EZMLM

Avant de mettre en place ce que j'indique ci-dessous, il me semble nécessaire de récupérer les mails des listes Yahoo via le robot Perl que l'on avait testé.
Il crée un fichier mailbox. Il faut donc ensuite l'importer dans la liste ezmlm avec un autre script perl mbox2ezmlm.pl. La procédure est expliquée ici :
http://ezmlm-www.sourceforge.net/howto-mbox.html

  1. Créer une liste avec Ezmlm-web portant le même nom que la liste Yahoo sur le domaine tela-botanica.org et modifier seulement :
    • autoriser tout le monde à poster sur la liste
    • autoriser l'archivage
    • modifier le préfixe en utilisant le même que sur Yahoo
  2. S'inscrire comme receveur des messages de cette liste
  3. Inscrire la liste tb-pterido@tela-botanica.org à la liste Yahoo tb-pterido@yahoogroupes.fr via thunderbird virtual identity et l'email tb-pterido-subscribe@yahoogroupes.fr
  4. Répondre au message de confirmation envoyé par Yahoo tjrs avec l'identité virtuelle en modifiant l'adresse de réponse par celle d'envoi de Yahoo
  5. Sur votre machine, lancer la récupération des messages yahoo dans une mbox. Pour ce faire, il faut les logins et mots de passe de deux comptes utilisateurs inscrit à la liste : ./yahooscript.sh -g tela-botanicae -m ./archives/tb-pterido.mbox --user1 login1 --pass1 mdp1 --user2 login2 --pass2 mdp2
  6. Envoyer le fichier mbox sur le serveur dans le dossier /home/vpopmail/scripts/archives/
  7. Se connecter à Sequoia
  8. Passer sous le compte vpopmail : su vpopmail
  9. Se rendre dans : cd /home/vpopmail/scripts/
  10. Récupération dans un fichier mbox puis alimentation des archives de la liste Ezmlm avec les anciens messages Yahoo : ./yahoo2ezmlm.sh -l tb-pterido -n nbre_message_max
  11. Éditer le fichier editor de la liste et remplacer son contenu par l'exemple donné plus bas dans cette page (en modifiant le nom de la liste suivant les besoins)
  12. Créer une copie du fichier editor : cp editor editor.sauv
  13. En cas de modification de la liste via Ezmlm-web le fichier editor sera modifié, il est donc impératif de ne pas le faire et en cas de problème d'utiliser la copie de sauvegarde...
  14. Puisqu'on a supprimer la ligne contenant la commande reject d'ezmlm, la liste de diffusion peut disparaitre de Qmail admin... Elle n'est donc plus accessible ni modifiable par Qmail admin...

Exemple de contenu du fichier editor pour les listes où un robot est inscrit
| grep -i '^sender: tb-pterido@yahoogroupes.fr' || (echo "Ssender incorrect! Different de : tb-pterido@yahoogroupes.fr"; exit 100; )
| grep -i '^reply-to: tb-pterido@yahoogroupes.fr' || (echo "Reply-to incorrect! Different de : tb-pterido@yahoogroupes.fr"; exit 100; )
|/usr/local/bin/ezmlm/ezmlm-send-yahoo -C '/home/vpopmail/domains/tela-botanica.org/tb-pterido'
|/usr/local/bin/ezmlm/ezmlm-warn '/home/vpopmail/domains/tela-botanica.org/tb-pterido' || exit 0


Listes de discussion avec un robot
Nom liste date  nb messages téléchargés Yahoo ID dernier message nb messages Yahoo Notes Robot actif
Amorphophallus_et_araceae 13/09 3274 3300 3300 msg Attention pour yahoo2mbox : le nom du groupe est avec des majuscules : Amorphophallus_et_araceae non
apiferafr 13/09 8688 8757 8760 msg non
arbresvenerables 13/09 660 684 755 msg À partir du message 460, le contenu n'a pas été stocké dans Yahoo qui affiche le message "Ce message ne peut être consulté parce que ce groupe a dépassé ses limites de stockage. Veuillez réessayer plus tard. " non
botanorm 13/09 1348 1392 1392 msg non
cartorhone 13/09 50 50 50 msg non
Gestionnature 13/09 1026 1038 1038 msg Attention pour yahoo2mbox : le nom du groupe est avec des majuscules : Gestionnature non
INFLORALHP 13/09 1058 1067 1067 msg Attention pour yahoo2mbox : le nom du groupe est en majuscule : INFLORALHP non
plantes_carnivores 13/09 15920 16002 16004 msg non
plantes_et_legendes 13/09 605 607 607 msg non
Rubus 13/09 1469 1469 1469 msg non
Tela-Sylva 13/09 802 806 806 msg non


Listes de discussion migrées vers Tela Botanica
Indexation active : si NON nécessite de récupérer à nouveau les messages depuis Yahoo et être réindexé
Nom liste date nb messages téléchargés Yahoo ID dernier message nb messages Yahoo Notes migrée (nouveau mail @tela-botanica.org) Membres prévenus
tb-Afrique-du-Nord 13/09 7825 7845 7845 msg Attention pour yahoo2mbox : le nom du groupe est avec des majuscules : tb-Afrique-du-Nord fait afrique-du-nord) oui
tb-eflore 13/09 964 964 994 msg Réindexer les messages puis supprimer la liste de Yahoo fait (eflore) non
tb-ethnobota 13/09 2634 2645 2645 msg fait (ethnobota) non
tb-herbiers 13/09 1324 1372 1372 msg Des personnes était inscrites à la liste tela-botanica.org... Elles ont été supprimées Il faut créer un espace projet privé pour cette liste (herbiers) non
tb-messicoles 13/09 376 384 384 msg fait (messicoles) non
tb-phytosocio 13/09 3568 3575 3575 msg fait (phytosocio) oui
tb-plte-envahissante 13/09 891 920 920 msg fait (envahissantes) non
tb-pterido 13/09 2747 2757 2757 msg fait (pterido) non
tb-tropical 13/09 1481 1481 1481 msg fait (tropical) non
tb-chorologie 13/09 1328 1328 1328 msg fait (chorologie) oui
tb-pilotage-projets 13/09 340 340 0 ? msg pilotage-projets non
tela-botanicae 13/09 41427 41957 42006 msg fait (botanique) non


Notes
  • la liste tela-botanicae peut servir de modèle car elle fonctionne correctement
  • les listes Amorphophallus_et_araceae, Gestionnature, infloralhp, arbresvenerables, tb-Afrique-du-Nord marchent avec Yahoo2mbox mais il faut bien respecter la casse des noms des groupes
  • il manque les 1000 premiers message de la liste apiferafr
  • indexation bizarre de la liste tb-herbiers (les fichiers YYYYMM contiennent des numéros de message qui n'existaient pas à ce moment là)

Patch Yahoo2mbox
Pour faire fonctionner Yahoo2mbox en août 2013, il a été nécessaire de rajouter la ligne de code suivant devant chaque requête ( $ua->simple_request($request) ) de message Yahoo :
$cookie_jar->set_cookie(0, "interrupt", "1&".time."&$main::msg", '/', '.groups.yahoo.com');
Lignes : 857, 890 et 895

Migrer une liste de discussion de Yahoo vers tela botanica

Une liste Yahoo est nommée de la manière : nom_de_la_liste@yahoogroups.fr
Tous les fichiers de scripts nécessaires se trouvent le dossier : /home/vpopmail/scripts/ du serveur

  1. rapatrier les messages de la liste Yahoo dans un fichier mbox qui servira à alimenter la liste Tela :http://www.tela-botanica.net/tela-nota/post/2008/06/06/35-recuperer-des-listes-de-discussion-yahoo-sous-ezmlm
  2. Si le dossier n'existe pas créer une nouvelle liste de discussion sur Tela Botanica et l'associer au projet http://www.tela-botanica.org/page:liste_projets?id_projet=numerodeprojet&act=16, lui donner le même nom que la liste Yahoo et laisser domaine = "tela-botanica.org"
  3. Copier le fichier mbox obtenu sur le serveur dans le dossier : /home/vpopmail/scripts/archives/
    • Bien vérifier que le fichier se nomme nom_de_la_liste.mbox
    • Lancer le script transfert-vers-ezmlm-tela-botanica.sh avec les bons paramètres qui permet de réalimenter la liste de discussion nouvellement crée avec les messages rapatriés.
  4. Renommer le fichier editor en editor.old et générer à nouveau le fichier editor (enregistrer la configuration de la liste via list.tela-botanica.org) dans le dossier /home/vpopmail/domains/tela-botanica.org/
  5. Si le calendrier des messages ou bien les fils de discussions n'apparaissent pas correctement dans l'appli projet, lancer les script /usr/local/bin/ezmlm-idx, /usr/local/bin/ezmlm-archive et /home/vpopmail/scripts/ezmlm-archive.sh
Exporter la liste des participants
Pour exporter la liste des participants à une liste Yahoo, il faut aller sur le site de Yahoo, dans la liste désirée, aller dans membres et cliquer sur exporter (en haut à droite de la liste des membres).
Copier coller le contenu dans la page dans un fichier que l'on nommera nom_de_la_liste.csv .
Penser à cocher la virgule comme séparateur lorsqu'on l'ouvre et choisir UTF8 comme encodage.
Oublié : le CSV indique pour certains inscrits "Pas de mail" (consultation uniquement), ces emails n'auraient pas dû être inscrits aux listes (ils l'ont été)

Mail type
Voir le mail type à envoyer pour la migration (remplacer adresse, nom et numéro du projet et la date dans le mail) :
//Chers participant(e)s,

Les participant(e)s à la liste de discussion Bryophytes, mais non-inscrits sur le site de Tela Botanica, ne connaissent peut-être pas encore l'espace de travail collaboratif qui est mis à leur disposition dans l'espace projet du site Tela Botanica (wikini, porte-documents, liste des participants).
http://www.tela-botanica.org/page:liste_projets?id_projet=55&act=resume

Cet espace s'enrichit aujourd'hui de sa propre liste de discussion (forum).
http://www.tela-botanica.org/page:liste_projets?id_projet=55&act=forums

A ce titre, nous avons procédé à la migration des messages de la liste Yahoo vers le forum Tela. Tout l'historique des messages envoyés est ainsi conservé et accessible.

Dorénavant, nous vous invitons à ne plus utiliser l'adresse actuelle de la liste Yahoo <tb-bryophyta@yahoogroupes.fr>.
Et nous vous prions d'utiliser la nouvelle adresse du forum Bryophytes  <tb-bryophyta@tela-botanica.org>

Enfin, pour accéder aux messages du forum Bryophytes deux cas de figure se présentent :

- vous êtes participant(e) à la liste de discussion Bryophytes et DÉJÀ INSCRIT(E) sur le site de Tela Botanica
rendez-vous sur la page du groupe Bryophytes, en cliquant sur le lien suivant
http://www.tela-botanica.org/page:liste_projets?id_projet=55&act=resume
consultez les messages du forum, en cliquant sur le lien suivant
http://www.tela-botanica.org/page:liste_projets?id_projet=55&act=forums
ou cliquer sur "s'inscrire à la liste" pour recevoir les messages directement dans votre boite mail.

- vous êtes participant(e) à la liste de discussion Bryophytes et NON-INSCRIT(E) sur le site de Tela Botanica
étape 1 : inscrivez-vous à Tela Botanica, rapide et gratuit ! en cliquant sur le lien suivant
http://www.tela-botanica.org/page:inscription
étape 2 : inscrivez-vous au projet Bryophytes, en cliquant sur le lien suivant
http://www.tela-botanica.org/page:liste_projets?id_projet=55&act=resume
et, si vous souhaitez recevoir les messages directement dans votre boite mail, cocher "Recevoir les message du forum"
sinon vous pourrez simplement consulter les messages, en cliquant sur le lien suivant
http://www.tela-botanica.org/page:liste_projets?id_projet=55&act=forums

La fermeture du forum Yahoo aura lieu lundi 29 mars à 12h00.

Si vous rencontrez des difficultés lors de ces étapes, n'hésitez pas à me contacter.

bien cordialement,
(signature)//


Fin de la migration
Une fois ces manipulations effectuées, et le délai de transition écoulé, supprimer la liste Yahoo en allant dans le menu option du groupe, cliquer sur supprimer le groupe.


Subtilités liées à l'indexation et l'archivage

L'indexation ezmlm-idx se base soit sur le champ "Date:" de l'email en provenance du client soit le champ "Received:" issu du serveur de list (Yahoo à l'origine, puis qmail).
0) l'indexation se fait par défaut sur ce dernier
1) le champ "Date:" n'est pas fiable (format de date non-standard de certains client mél), date impromptue de l'ordinateur de l'utilisateur (eg: 1904), ...
1") en aucune manière nous ne devons modifier ce champ
2) le champ "Received:" est plus fiable, mais en de rare occasion il est manquant, mais auquel cas existe le champ "X-Received"

C'est pourquoi mbox2ezmlm.pl a été modifié pour contenir le code suivant dans sa boucle principale :
# ezmlm peut indexer par Date ou Received
	# "date" n'est pas un format uniforme exploitable
	# "received" n'est pas toujours présent
	# C'est ce dernier cas que nous évitons afin de pouvoir
	# utiliser ezmlm-idx -D  en toute sécurité sans altérer
	# la date des messages.
	if (!$message->header("Received")) {
		$message->header_set("Received", $message->header("X-Received"));
	}


Cela assure la présence du champ et donc indexation et archivage.
Cependant :
3) les index qui sont générés à partir de ce champ ont besoin d'être dans un format accepté par ezmlm-archive
Cette ligne par exemple, est correcte :
Received: (qmail 15456 invoked from network); 9 Sep 1999 20:01:06 -0000

Mais celle-ci ne l'est pas :
Received: (listserv 1.276); by a1; 05 Nov 1999 19:06:18 -0000

En effet listserv ajoute le préfixe non-standard " by [aq]\d;" ce qui créé des indexes alors corrompus illisibles par ezmlm-archive.

Deux solutions s'offrent à nous : modifier les emails correspondant (moins d'une dizaine pour "botanique" (ex "botanicae"), ou bien modifier les "index".
Cette seconde solution est de loin la meilleure :
* moins de fichiers traités
* moins de pattern complexes
* pas d'altération des emails d'origine
La commande suivante résoud donc la problématique :
find REPERTOIRE_EZEMLM -name index -exec sed -i 's/ by [qa].;//' {} \;