Comment diviser un gros fichier de boîte Thunderbird sans perdre d'e-mails
Un dossier Thunderbird est un seul fichier mbox et, au bout de quinze ans, il pèse plus lourd que le disque sur lequel il a commencé. Voici comment le découper en boîtes plus petites — avec Mbox Viewer ou avec mboxShell, notre outil en ligne de commande open source — et surtout comment prouver ensuite qu'il ne manque pas un seul message.
Un dossier Thunderbird n’est pas un dossier. C’est un fichier unique qui contient tous les messages que vous avez reçus, les uns après les autres, dans leur ordre d’arrivée. Ce choix technique a remarquablement bien vieilli — c’est pour cela qu’une boîte écrite en 2004 s’ouvre encore aujourd’hui — mais il a une conséquence qu’on découvre tard : après quinze ans, votre boîte de réception est un objet unique de 14 Go, et tout ce que vous voudriez faire avec une partie oblige à déplacer le tout.
Tôt ou tard, une raison de le découper apparaît. Un avocat réclame la correspondance d’une année. Vous quittez une entreprise et seuls les courriers du projet vous appartiennent. Vous voulez la tranche 2008-2015 sur un disque externe et le reste en usage quotidien. Ou bien le dossier est simplement devenu ingérable et vous le voulez en morceaux que vous pourrez sauvegarder séparément.
Le conseil qu’on lit dans les forums, c’est de couper le fichier avec split, avec un éditeur de texte ou avec csplit sur /^From /. Surtout pas. Voici pourquoi, et voici quoi faire à la place.
Pourquoi couper un mbox à la main tourne mal
Un fichier mbox est une simple concaténation : chaque message commence par une ligne qui débute par From — la ligne d’enveloppe, pas l’en-tête From: — et court jusqu’à la suivante. C’est tout le format.
Coupez ce fichier à un octet ou à une ligne arbitraire et vous tomberez au milieu d’un message à peu près à chaque fois. La première partie se termine sur une moitié d’en-têtes ; la seconde commence par un corps sans aucun en-tête, qui n’est plus un message mais du texte. Les deux fichiers ont l’air corrects — ils s’ouvrent, ils font la bonne taille — et les dégâts n’apparaissent que le jour, des années plus tard, où vous cherchez précisément cet e-mail-là.
Couper sur le motif From est plus malin et reste dangereux. La famille mbox échappe une ligne de corps qui commence par From en l’écrivant >From , mais tous les programmes qui ont écrit dans votre boîte ne l’ont pas fait, et une réponse citée peut très bien contenir une ligne qui commence par « From ». Divisez sur le motif et ce message-là se déchire en deux : un e-mail devient deux demi-e-mails, et rien ne vous prévient.
C’est le vrai problème de toutes les méthodes manuelles : elles ne vous donnent aucun compte. Vous ne savez pas combien de messages sont entrés, combien sont sortis, ni si les deux chiffres correspondent. La façon sûre de diviser une boîte, c’est de la traiter comme du courrier et non comme du texte — l’analyser, sélectionner des messages entiers, les réécrire — puis de vérifier l’arithmétique.
Avant de couper : trois choses sur les fichiers de Thunderbird
Chaque boîte est un fichier sans extension dans votre profil :
- Windows :
%APPDATA%\Thunderbird\Profiles\<profil>\Mail\Local Folders\ - macOS :
~/Library/Thunderbird/Profiles/<profil>/Mail/Local Folders/ - Linux :
~/.thunderbird/<profil>/Mail/Local Folders/
Vous y trouverez INBOX, Sent, Archives et les noms de vos propres dossiers, chacun à côté d’un fichier .msf du même nom. Le .msf n’est que l’index de Thunderbird et peut être ignoré : il se reconstruit tout seul. Le fichier sans extension, c’est le courrier lui-même, au format mbox standard. (Tour d’horizon plus complet dans nos guides pour macOS et Windows.)
Trois règles avant de toucher à quoi que ce soit :
Quittez Thunderbird. Il garde le fichier ouvert et écrit dedans ; diviser une boîte pendant qu’on y ajoute des messages, c’est la meilleure façon de se retrouver avec un demi-message à la fin.
Travaillez sur une copie. Copiez le fichier ailleurs — le bureau fera l’affaire — et découpez la copie. Ne sortez jamais l’original du profil : Thunderbird considérera que le dossier a disparu.
Compactez d’abord, ou sachez ce que vous emportez. Quand vous supprimez un message, Thunderbird le marque et le laisse dans le fichier ; les octets ne partent qu’au compactage du dossier. C’est pour cela qu’un dossier affichant 4 000 messages peut peser 9 Go. Si vous divisez sans compacter, ces messages supprimés partent avec vous dans les morceaux — et ce sont des e-mails parfaitement lisibles. Clic droit sur le dossier → Compacter si vous n’en voulez pas, et sautez l’étape volontairement si vous en voulez.
Étape 1 — mesurer avant de couper
Avant de décider où passent les coupes, regardez ce qu’il y a vraiment dans le fichier. mboxShell, notre outil de terminal open source (MIT), lit directement les fichiers sans extension de Thunderbird, n’a aucune limite de taille et n’écrit jamais dans le fichier qu’il ouvre :
$ mboxshell stats INBOX
File INBOX
File size 9.41 GiB
Messages 128,455
Date range 2004-02-11 — 2026-08-19
Index size 14.2 MiB
Indexing time 48.31s
With attachments 19,880 (15.5%)
Duplicates 312 (128,143 Unique IDs)
Notez ces deux chiffres : le nombre de messages et la plage de dates. Ce sont eux que vous vérifierez à la fin.
Planifiez maintenant les coupes sans rien produire. search compte une tranche pour vous, vous pouvez donc essayer des bornes jusqu’à ce que les morceaux fassent la taille voulue :
$ mboxshell search INBOX "after:2004-01-01 before:2010-01-01" --json | head -3
{
"result_count": 31204,
after: inclut son propre jour et before: exclut le sien : des plages consécutives écrites ainsi se rejoignent exactement, sans trou ni recouvrement. C’est cette propriété qui rend possible la vérification finale. La syntaxe de recherche complète permet aussi de découper par expéditeur, par taille ou par pièce jointe plutôt que par date, si c’est de cela qu’il s’agit en réalité.
Étape 2 — découper la boîte
Avec Mbox Viewer, sur Mac ou Windows, diviser, c’est l’export que vous connaissez déjà :
- Ouvrez la copie de la boîte — le fichier sans extension, sans le renommer.
- Cherchez la tranche :
after:2004-01-01 before:2010-01-01. - Sélectionnez les messages : cliquez sur la première ligne, puis Maj+clic sur la dernière pour prendre toute la plage.
- Fichier → Exporter (⌘E) → MBOX. Sous Windows, c’est Exporter → Vers MBOX…, et là vous pouvez sauter l’étape 3 : sans sélection, l’export prend tout ce que la recherche a laissé à l’écran.
Vous obtenez une nouvelle boîte, proposée sous le nom INBOX-selection.mbox, contenant exactement ces messages. Ils sont copiés octet par octet : le résultat est une boîte valide que n’importe quel logiciel ouvre, et le fichier ouvert n’est jamais touché — l’application est strictement en lecture seule. Répétez pour chaque tranche. L’export vers MBOX fait partie de la version gratuite ; ce que la version gratuite limite, c’est la taille de la boîte que vous ouvrez, à savoir 1 Go.
Avec mboxShell seul, le chemin est différent, et autant le dire franchement : mboxShell exporte en EML, CSV, texte et HTML, mais il n’écrit pas de mbox partiel. La voie « tout en terminal » consiste donc à exporter chaque tranche sous forme de dossier de fichiers EML et à laisser Thunderbird reconstruire la boîte à l’import :
$ mboxshell export INBOX --format eml --query "after:2004-01-01 before:2010-01-01" --output ./2004-2009/
Exporting 31204 message(s) as eml to ./2004-2009/
Exported 31204 .eml files
C’est un détour, mais c’est gratuit, sans limite de taille et scriptable. L’autre moitié du travail — rassembler des boîtes — est en revanche bien écrite en mbox par mboxShell : mboxshell merge a.mbox b.mbox -o fusionne.mbox.
Étape 3 — prouver que rien n’a été perdu
C’est l’étape qui sépare une division d’un pari, et presque personne ne la fait.
Comptez chaque morceau. Passez stats sur chaque tranche et additionnez les nombres de messages. Le total doit être égal à ce qu’annonçait l’original. S’il manque, une borne est mal placée ; s’il y en a trop, deux tranches se recouvrent.
Vérifiez les plages de dates. La plage de chaque morceau doit tenir dans la borne demandée, et les morceaux doivent s’enchaîner bout à bout sans trou.
Reconstruisez l’original et comparez. C’est le test décisif. Fusionnez les morceaux — la déduplication par Message-ID est active par défaut — et lisez le résumé :
$ mboxshell merge 2004-2009.mbox 2010-2017.mbox 2018-2026.mbox -o rebuilt.mbox
Merge complete:
Input files 3
Total messages 128,455
Duplicates removed 0
Output size 9.41 GiB
Output file rebuilt.mbox
Un « Total messages » égal au compte d’origine et un « Duplicates removed » à zéro disent ensemble que vos tranches étaient complètes et disjointes : chaque message se trouve dans une seule d’entre elles. Si des doublons apparaissent, vos plages se recouvrent. Si le total est inférieur, quelque chose est tombé entre deux coupes. Dans les deux cas vous le savez avant d’avoir supprimé quoi que ce soit — et c’est tout l’intérêt.
C’est seulement là qu’il devient raisonnable de ranger l’original. Et même là : gardez-le. Les disques coûtent moins cher que les e-mails qu’on ne peut pas récupérer.
Étape 4 — remettre les morceaux dans Thunderbird
Si les tranches doivent rester dans Thunderbird comme dossiers séparés, l’extension gratuite ImportExportTools NG importe un fichier mbox directement dans les Dossiers locaux sous forme de nouveau dossier — et sait aussi importer un répertoire de fichiers EML, ce qui referme la voie mboxShell. Faites-le avec Thunderbird ouvert, via l’extension, plutôt qu’en déposant des fichiers dans le profil à la main : Thunderbird construit ainsi son propre index .msf et sait ce qu’il a.
Et si les morceaux ne doivent pas revenir — l’année qui part chez l’avocat, l’archive qui va sur le disque externe — ce n’est pas nécessaire. Ce sont des fichiers mbox standard. Mbox Viewer les ouvre, mboxShell les ouvre, et ce qui lira le courrier dans vingt ans les ouvrira aussi, ce qu’on ne peut pas dire de la plupart des formats venus après.
Ce qu’il ne faut pas faire
- Ne supprimez pas l’original tant que l’arithmétique de l’étape 3 ne tombe pas juste.
- Ne divisez pas par octets ou par lignes avec
split,ddou un éditeur de texte — et n’ouvrez pas du tout une boîte de plusieurs gigaoctets dans un éditeur. - Ne renommez pas et ne déplacez pas l’original dans le profil. Thunderbird identifie les dossiers par leur nom de fichier.
- Ne faites pas confiance à un morceau que vous n’avez pas compté. Un fichier qui s’ouvre n’est pas un fichier complet.
Ouvrez votre archive avec Mbox Viewer
Application native pour Mac et Windows. Lit en streaming des fichiers MBOX et EML de toute taille, entièrement hors ligne.