Claws-mail

Depuis que j'utilise imap avec des règles de filtrage coté serveur, thunderbird (2.0.0.14) n'actualise plus le nb de messages non lus dans chaque dossier (en gras dans la colonne de gauche), il faut aller dans chaque dossier pour que l'actualisation se fasse, et même un dossier de résultats de recherche sur les non lus (avec "recherche sur le serveur" coché) ne s'actualise pas :-/

Ça m'a permis de découvrir claws-mail :-)

Outre qu'il est nettement plus light que TB (en RAM et en rapidité), avec une bonne gestion des gros dossiers (plusieurs milliers de mail, voire dizaines pour les ml prolixes), il permet d'avoir des règles très élaborées par compte ou par dossier. En plus, les raccourcis clavier que procure l'excellente extension nostalgy pour se balader dans l'arborescence des dossiers et trier ses mails sont gérés nativement dans claws-mail, l'élimination d'éventuels doublons aussi (mais j'ai plus trop le pb avec imap).

règles d'archivage

Avoir des règles sur chaque dossier c'est bien, mais les faire une par une c'est long… Mais quand on en a fait une, on regarde la syntaxe dans ~/.claws-mail/matcherrc et on automatise sa reproduction :

mon_serveur_imap=<le_serveur_concerne>
archives_locales=/path/to/archives/locales
cd ~/.claws-mail/imapcache/$mon_serveur_imap/
# on créé une règle par dossier IMAP pour l´archivage
find . -type d|while read d; do echo $d|sed -ne '/\/Drafts$/d; /\/Junk/d; /\/Queue$/d; /\Sent$/d; /\/Trash$/d; s@^./\([^/]*\)/\(.*\)@[#imap/\1/\2]\nenabled rulename "Archivage \2"  age_greater 60 move "#mh/Local/archives/\2"@p'; done>~/.claws-mail/matcherrc.test
# et on crée les dossier dans les archives locales
find -type d|while read d; do r=$(echo $d|sed -re 's#.*'$mon_serveur_imap'/(.*)#\1#'); echo "$r";[ -d "$archives_locales/$r" ] || mkdir "$archives_locales/$r"; done;

Reste à éditer ~/.claws-mail/matcherrc.test pour vérifier que tout s'est bien passé, modifier la règle des 60j par défaut si on veut pour certains dossiers et on le fusionne avec ~/.claws-mail/matcherrc

personnalisation et scripts

On peut vraiment faire pas mal de trucs, du genre appliquer des scripts externes à des bouts de message, mais on peut aussi utiliser des commandes shell appliquées aux champs utilisés dans les modèles.

Par exemple, pour ajouter les initiales de l'expéditeur juste avant le symbole ">" utilisé dans les citations, dans configuration/préférences/composition/modèles/Répondre/préfixe de citation, mettre

|p{echo -n '%f'|sed -re 's/([a-zA-Z]+[^<]*)<.*/\1/; s/(.*)@.*/\1/; s/(\<.)[^- .]*/\U\1/g;s/[- \."<]//g;s/.*/&> /;'}

Explications :

  • s/([a-zA-Z]+[^<]*)<.*/\1/; : vire ce qui suit un < s'il est précédé d'au moins une lettre
  • s/(.*)@.*/\1/; vire ce qui suit @
  • s/(\<.)[^- .]*/\U\1/g; met en capitale la première lettre d'un mot et vire les caractères non tiret-espace-point qui suivent, pour chaque occurence rencontrée
  • s/[- \."<]//g; vire les caractères tiret-espace-point
  • s/.*/&> /; ajoute "> " à la fin de ce qui reste

On peut perfectionner avec (mettre sur une ligne et virer le caractère §, mis ici car ce wiki n'arrive pas à rendre ce code)

|p{echo -n "%f"|sed -re '
  s/["'"'"'\[\(\)\&]/§/g; 
  s/]/§/g; 
  s/ +/ /g; 
  s/([a-zA-Z]+[^<]*)<.*/\1/; 
  s/(.*)@.*/\1/; 
  s/(\<.)[^- \.\(]*/\U\1/g;
  s/[- \.<]/§/g;
  s/.*/&> /;'}

mais depuis la version ?? c'est inutile, le champ "initiales" est dispo, le préfixe "%I> " suffit !

Migration TB2 -> Claws-mail

Dans les claws-mail-tools, il y a un script de migration, mais apparemment il ne marche que pour TB1, pas grave, il y a aussi un script de conversion depuis le format mbox, celui de TB…

Rectificatif du 15/06/2008, le script tbird2claws.py marche très bien avec des boites TB2. Il faut tout convertir dans un dossier qcq et ensuite (ou avant) créer une boite locale claws (mh) sur ce dossier.

Ce qui suit est donc à priori obsolète…

# 1er probleme, le script convert_mbox.pl n´aime pas les espaces dans les noms de dossiers, 
# on va nettoyer tout ça
cd /home/mails_thunderbird/
# mieux vaut être prudent
cp -a Dossiers_locaux Dossiers_locaux2migrate
cd Dossiers_locaux2migrate
# on peut renommer, mais en descendant progressivement dans l´arborescence
rename 's/[^-A-Za-z0-9_.\/@]/_/g' *
rename 's/[^-A-Za-z0-9_.\/@]/_/g' */*
rename 's/[^-A-Za-z0-9_.\/@]/_/g' */*/*
rename 's/[^-A-Za-z0-9_.\/@]/_/g' */*/*/*
rename 's/[^-A-Za-z0-9_.\/@]/_/g' */*/*/*/*
rename 's/[^-A-Za-z0-9_.\/@]/_/g' */*/*/*/*/*
# et y'a plus qu'à générer le script de conversion
find -name '*.msf'|while read f; do mb=${f%*.msf}; \
dest=/home/mails_claws/Local/archives/$(echo $mb|sed 's@\.sbd/@/@;'); \
destPar=$(echo $dest| sed -e 's@\(.*\)/[^/]*@\1@;'); \
[ -d \"$destPar\" ] && destPar=$destPar.new; \
echo "[ -d \"$destPar\" ] || mkdir -p \"$destPar\""; \
echo "perl /usr/share/doc/claws-mail/tools/convert_mbox.pl \"$mb\" \"$dest\"";done>todo

Reste à inspecter le todo produit, lancer éventuellement à la main les 2 premières lignes, et enfin sh todo. Ensuite, retourner dans claws-mail et reconstruire l'arborescence (Attention, il faut désactiver le plugin de notification, chez moi, avec ce plugin, x.org prenait 95%CPU et j'ai dû faire un kill sur claws-mail après ~30min. sans le plugin, il a fallu ~2min pour reconstruire l'arborescence de 2Go et 200 000 mails).

 
linux/claws-mail.txt · Dernière modification: 11/12/2013 12:06 par daniel