Intéressé par des cours d'informatique en ligne ?
Visitez mon nouveau site
https://www.yesik.it !
J'ai récemment eu besoin d'importer des messages dans Thunderbird. Plus précisément, je me suis trouvé dans le cas où j'avais une partie des messages sur un ancien ordinateur, et l'autre partie des messages sur un autre qui venait d'être installé depuis quelques jours. J'ai donc cherché un moyen de fusionner les deux boîtes de réception afin de tout récupérer sur l'ordinateur récent. À priori, c'est une tâche qui ne me semblait pas extraordinairement originale, et je m'attendais à trouver une solution rapidement. Mais rien dans les menus de Thunderbird. Pas vraiment d'extension adaptée sur le site de Mozilla. Quand au wiki du projet, il évoque plutôt la migration (le déplacement) des données d'un profil à l'autre [1] [2]. Bref, rien sur la fusion de messageries...
Le fichier mbox
Le format de fichier mbox regroupe en réalité plusieurs formats légèrement différents. Mais dans tous, les nouveaux messages sont juste ajoutés à la fin du fichier. Quand un message est supprimé, il est marqué comme tel, mais l'espace qu'il occupe ne sera récupéré qu'à la prochaine compression du fichier.
Généralement les logiciels de messagerie procèdent régulièrement à la compression du fichier: soit, par exemple, après la suppression d'un certain nombre de messages, ou quand l'espace perdu dépasse une certaine taille.
Je m'étais presque résigné à me lancer dans des manipulations compliquées, quand je me suis souvenu que Thunderbird, comme beaucoup de clients de messageries, utilise le format mbox. Pour être tout à fait honnête, le format mbox n'existe pas. En réalité, il en existe différentes versions plus ou moins compatibles entre elles.
Tous ces formats ont la particularité de simplement enregistrer les messages les uns après les autres. Ils ne contiennent pas d'index ni d'autre structure de données qui s'opposeraient à l'ajout sauvage de messages à la fin du fichier. C'est cette propriété des fichiers mbox que je vais exploiter: ainsi, pour fusionner deux boîtes de messages, il suffit de concaténer les deux fichiers!
Le profile
La question restante est maintenant de savoir où sont ces fameux fichiers mbox. Ce n'est pas trop dur à résoudre puisque la documentation de Thunderbird est assez détaillée sur ce sujet. Et même sans la documentation, un peu de curiosité permet de trouver la réponse.
Comme beaucoup de clients de messagerie, Thunderbird permet de créer plusieurs profils (profiles). Un profil est un dossier qui regroupe les réglages, la configuration, le carnet d'adresse, les messages, ... bref tous les réglages spécifiques à un utilisateur.
Système d'exploitation | Emplacement habituel |
---|---|
Windows NT (NT4.x/2000/XP/Vista/7) | "%APPDATA%\Mozilla\" |
Windows 95 (without Desktop Update) | C:\Windows\Mozilla |
Windows 95 (with Desktop Update)/98/Me | C:\Windows\ApplicationData\Mozilla\ |
C:\Windows\Profiles\<Windows login/user name>\Application Data\Mozilla\ | |
Unix/Linux | ~/.mozilla/ |
~/.thunderbird/ | |
~/.icedove/ (sous Debian) | |
Mac OS X | ~/Library/Mozilla/ |
~/Library/Application Support/ |
Dans une installation standard de Thunderbird sur Linux/Unix, les profils sont stockés dans un fichier caché. Il vous faudra un peu chercher peut-être pour le trouver. Comme j'utilise Debian, ce dossier est ~/.icedove.

Définition: Icedove
Icedove est une version Debianisée de Thunderbird dans laquelle les éléments non-compatibles avec la licence libre de Debian ont été retirés. Il s'agit essentiellement du logo et du nom.sh$ ls .icedove/ 37j1wuvz.default profiles.ini sh$ ls .icedove/37j1wuvz.default/ abook.mab global-messages-db.sqlite pluginreg.dat Cache history.mab prefs.js cert8.db ImapMail secmod.db compatibility.ini key3.db signons.sqlite compreg.dat localstore.rdf training.dat cookies.sqlite lock traits.dat extensions Mail urlclassifier3.sqlite extensions.cache mailViews.dat virtualFolders.dat extensions.ini mimeTypes.rdf XPC.mfasl extensions.rdf panacea.dat xpti.dat folderTree.json permissions.sqlite XUL.mfasl
Ainsi, dans le dossier des profils, je trouve un dossier avec un nom cryptique: 37j1wuvz.default. Il s'agit du dossier contenant mon profil par défaut.
À l’intérieur de celui-ci se trouvent tous mes réglages, configuration, etc. Et surtout, le dossier Mail qui contient mes différents comptes de messagerie.
sh$ ls .icedove/37j1wuvz.default/Mail
Local Folders pop.ac-rennes.fr smart mailboxes ssl0.ovh.net
Vous le constatez, chaque compte de messagerie est à son tour représenté par un dossier dans Mail. Si j'examine le contenu d'un de ces dossiers, je trouve enfin le fameux fichier mbox correspondant. Celui-ci est enregistré sous le nom Inbox:
sh$ ls .icedove/37j1wuvz.default/Mail/pop.ac-rennes.fr/
Inbox Inbox.msf msgFilterRules.dat popstate.dat Trash Trash.msf
Fusionner deux mbox
Après cette exploration, passons à ce qui nous intéressait en premier lieu: la fusion de deux boîtes de messagerie.

Attention:
À partir d'ici, nous allons modifier les fichiers de messagerie de Thunderbird. Il y a toujours un risque de corruption des données. Si vous avez des messages importants, je vous conseille fortement une sauvegarde avant de poursuivre!
Dans la section précédente, j'ai retrouvé le fichier mbox correspondant à mon profil sur la machine où je veux fusionner les données. Parallèlement, j'ai fait la même manipulation sur mon autre ordinateur pour retrouver l'autre fichier mbox à fusionner et le récupérer, par exemple, sur une clé USB. Reste maintenant à les concaténer:
sh$ cat < /path/to/old/profile//pop.ac-rennes.fr/Inbox \ >> .icedove/37j1wuvz.default/Mail/pop.ac-rennes.fr/Inbox

Piège:
Le format de fichier mbox est rudimentaire et il ne supporte pas les accès concurrents. Assurez-vous donc que Thunderbird ne tourne pas quand vous faites cette manipulation!
Et voilà! Rien d'autre à faire: à la prochaine ouverture de Thunderbird, celui-ci va détecter la modification du fichier mbox et relancer automatiquement l'indexation des messages.
Pour finir
La manipulation décrite ici – à savoir concaténer deux mbox pour les fusionner – peut être tentée avec n'importe quel client de messagerie utilisant ce format de boîte aux lettres.
Si cela a de grandes chances de fonctionner pour fusionner deux mailboxes créées par la même application, c'est plus sujet à caution pour la fusion de boîtes de messageries issues de deux applications différentes: en effet, toutes n'utilisent pas exactement le même format fichier, ce qui peut rendre la manipulation plus compliquée qu'une simple concaténation.