Thun­der­bird et les mail­dir

EDIT : Atten­dez un peu avant de migrer vers le format mail­dir, il y a un vilain bug : les mails ne sont jamais suppri­més ou dépla­cés mais copiés lorsqu’on met un mail à la corbeille ou qu’on le déplace dans une autre boîte (https://bugzil.la/771643). Du coup, le réper­toire conte­nant les données de Thun­der­bird ne fait que gros­sir et gros­sir đŸ™

Thun­der­bird est à mon avis un très bon client mail. Mais sa gestion de l’en­re­gis­tre­ment des emails laisse un peu à dési­rer : le format utilisé, mbox est archaïque et pose de graves problèmes de lenteur.
En effet, au format mbox, un dossier de mails est un fichier conte­nant l’en­semble des mails conca­té­nés les uns à la suite des autres. Lorsque le dossier est bien rempli (j’ai pas mal de dossiers de plusieurs milliers de mails au boulot), l’ou­ver­ture du dossier est lente et le risque d’in­co­hé­rence (mauvais clas­se­ment de conver­sa­tions, mails marqués comme suppri­més alors que non, etc.) se fait impor­tant.
Au format mail­dir, au contraire, on retrouve un dossier par dossier et un fichier par mail. Imagi­nez le gain pour le logi­ciel de ne pas devoir cher­cher un mail dans un fichier texte de 300Mo !

Depuis sa version 12 (malheu­reu­se­ment, pas encore portée sur Debian et renom­mée en Icedove), Thun­der­bird peut utili­ser le format mail­dir !

Pour ce faire, allez dans les préfé­rence, onglet Avancé, et ouvrez l’édi­teur de confi­gu­ra­tion ou fermez Thun­der­bird et ouvrez le fichier ~/.thun­der­bird/profile.default/prefs.js
Recher­chez « storeCon­tractID », vous obtien­drez des trucs comme

mail.server.server1.storeContractID String @mozilla.org/msgstore/berkeleystore;1

Rempla­cez « @mozilla.org/msgstore/berke­leys­tore;1 » par « @mozilla.org/msgstore/mail­dirs­tore;1 » partout où vous le trou­ve­rez, cela indique d’uti­li­ser mail­dir pour les diffé­rents comptes mail.
Ajou­tez une clé (chaîne de carac­tères) :

 mail.serverDefaultStoreContractID

avec

 @mozilla.org/msgstore/maildirstore;1

comme valeur, cela vous permet­tra d’avoir du mail­dir par défaut pour vos nouveaux comptes.

Fermez Thun­der­bird. Il reste encore à suppri­mer les anciens fichiers mbox. Si on se contente d’un gros­sier

 rm -rf ~/.thunderbird/profile.default/ImapMail/*

on perdra les proprié­tés des dossiers : critère de tri, de télé­char­ge­ment pour usage hors-ligne… Pas cool. Il est bien mieux de faire :

 find ~/.thunderbird/profile.default/ImapMail/ -type f | grep -v msf | xargs rm

Ceci gardera les fichiers .msf qui contiennent la confi­gu­ra­tion des dossiers. (Si des fichiers ou des dossiers contiennent des espaces, il ne seront pas suppri­més. Utili­sez juste le find et le grep pour en avoir la liste et faites-le à la main)

Rallu­mez Thun­der­bird, ça devrait rouler ! (Thun­der­bird va reté­lé­char­ger et réin­dexer les messages, donc il risque de prendre pas mal de ressources pendant un certain temps)

NB : profile.default ne s’ap­pelle pas comme ça, mais il n’y a norma­le­ment qu’un profil donc vous ne vous perdrez pas.

L’as­tuce du jour pour Thun­der­bird/Icedove

J’aime lire mes mails en texte pur, mais certains #@&¥¿ logi­ciels de cour­rier élec­tro­nique/utili­sa­teurs/bots de serveurs n’écrivent qu’en html ou ne permettent d’avoir l’in­for­ma­tion dans la partie texte pur.

Il existe plusieurs exten­sions Thun­der­bird permet­tant de passer du texte pur à l’html en un clic, de façon tempo­raire, juste pour le message en cours (je vous conseille Allow HTML Temp) mais aucun n’est compa­tible avec l’ex­ten­sion Conver­sa­tions dont je ne pour­rais me passer.

J’ai enfin trouvé LE truc : dans l’édi­teur de confi­gu­ra­tion (Outils -> Préfé­rences -> Avancé), passez la valeur mailnews.display.show_all_body_parts_menu à true et vous aurez un item en plus dans le menu Affi­chage -> Corps du message en

En utili­sant le nouvel affi­chage, la partie html s’af­fi­chera en dessous de la partie texte, plus besoin de swit­cher d’af­fi­chage.

Petit point néga­tif : lorsqu’il n’y a que de l’html, il n’y a plus de conver­sion en pur texte.