Takeout mbox importé : tous les emails datés d'aujourd'hui

9 min de lecture

Vous avez ouvert votre archive Google Takeout, importé le fichier mbox dans Thunderbird avec ImportExportTools NG (ou dans Apple Mail), puis glissé les dossiers vers votre nouveau compte IMAP. Dans le client, les emails étaient rangés année par année. Sur le compte de destination, ils sont tous datés d'aujourd'hui. Cet article explique ce qui se passe avec un Takeout mbox importé, pourquoi la date affichée est celle de la copie, comment le confirmer en quelques minutes et comment la corriger côté serveur.

Première chose à savoir : vos emails ne sont pas abîmés. La date d'origine est toujours dans le message. Elle n'est simplement plus celle que le compte de destination met en avant.

Le scénario typique d'un Takeout mbox importé

Vous venez de fermer un compte Gmail personnel, ouvert il y a quinze ans. Vous avez demandé l'export sur takeout.google.com, attendu le message de Google (deux jours pour une grosse boîte), téléchargé quatre archives zip. Dans chacune, un fichier .mbox par libellé. Vous les importez dans Thunderbird : le dossier local se remplit, le tri par date est impeccable, 2009 tout en bas, hier tout en haut.

Vous faites alors ce que tout le monde ferait. Vous sélectionnez les dossiers et vous les glissez vers le compte IMAP de destination, un Microsoft 365, un hébergeur ou un Google Workspace. Le transfert dure une soirée entière. Lundi matin, vous ouvrez le webmail.

Le problème ? Les 18 400 emails sont datés du week-end, dans une plage de quelques heures. Un contrat de 2014 se retrouve à côté d'une newsletter de la semaine dernière, et personne ne retrouve plus rien par ordre chronologique.

Le cas est très proche de celui des anciens emails qui ont tous la même date, avec une différence de taille : ici, aucun outil de migration n'est en cause. Le glisser-déposer suffit.

Trois dates dans un seul email

Pour comprendre, il faut arrêter de parler de "la date" d'un email. Un message importé depuis un fichier mbox en porte au moins trois, et elles ne servent pas aux mêmes choses.

L'en-tête Date : celle de l'expéditeur

C'est l'en-tête Date: défini par la RFC 2822 (reprise par la RFC 5322). Le client de l'expéditeur l'écrit au moment de l'envoi, par exemple Date: Tue, 14 Mar 2017 09:12:45 +0100. Il fait partie du message, il voyage avec lui, et Takeout le conserve tel quel. C'est lui qui rend la correction possible, puisqu'il reste intact.

La ligne From du fichier mbox : une date de façade

Dans un fichier mbox, chaque message est précédé d'une ligne commençant par From (avec une espace, sans deux-points). Ce n'est pas un en-tête : c'est un séparateur propre au format de fichier, qui ne fait pas partie du message. Aucun outil sérieux ne devrait s'y fier pour dater un email.

L'INTERNALDATE : la date de dépôt sur le serveur

Troisième date, et la plus discrète : l'INTERNALDATE, définie par la RFC 3501. C'est un attribut que le serveur IMAP stocke à côté du message (pas dedans) et qui correspond à la date à laquelle le message a été déposé dans la boîte. Outlook, les webmails et les téléphones s'en servent pour afficher et trier la date de réception. Pour le détail du mécanisme, l'article sur l'INTERNALDATE et les dates erronées en IMAP va plus loin.

Une précision sur les en-têtes Received:, souvent accusés à tort ici. Les lignes Received d'un email Gmail exporté racontent le vrai trajet du message en 2017 : elles portent des dates anciennes et légitimes. Dans ce cas précis, la date fausse ne vit donc pas dans le message, mais dans les métadonnées que le serveur attribue à la copie.

Pourquoi le compte de destination affiche la date de la copie

Quand un client dépose un message sur un serveur IMAP, il utilise la commande APPEND. Cette commande accepte, en option, une date à donner au message. Si le client la fournit, le serveur la retient comme INTERNALDATE. Sinon, le serveur applique la règle prévue par la RFC 3501 : la date et l'heure du moment. Autrement dit, la date affichée dépend de la façon dont l'outil a écrit l'email. Un outil qui ne transmet pas la date d'origine obtient la date de la copie.

Résultat : pendant que vous faites glisser vos dossiers, chaque message prend la date de son propre dépôt. Un dossier de 3 000 emails copié en 40 minutes tombe dans une fenêtre de 40 minutes.

Et le dossier local de Thunderbird, alors ? Il paraissait parfait parce que Thunderbird y trie sur l'en-tête Date, et non sur une date de serveur, puisqu'un dossier local n'a pas de serveur. Le comportement d'Apple Mail avec les boîtes importées est comparable : tout va bien tant que les messages restent sur le Mac. La vérité apparaît au moment où un autre logiciel, Outlook par exemple, lit la boîte IMAP.

En fait, ce n'est pas tout à fait exact de dire que tous les clients se trompent à chaque fois. Certaines versions transmettent la date, d'autres non, et le comportement a changé au fil des mises à jour. Du coup, deux collègues qui suivent la même méthode peuvent obtenir des résultats différents, ce qui rend le diagnostic plus déroutant qu'il n'y paraît.

Le glisser-déposer n'est pas une migration. C'est une copie, et une copie porte la date de sa fabrication.

Comment reconnaître ce cas en cinq minutes

Avant de chercher une solution, confirmez que vous êtes bien dans ce scénario et pas dans un autre. Quatre vérifications suffisent.

  • Comparez les deux endroits. Le dossier local de Thunderbird (ou la boîte importée d'Apple Mail) affiche des dates justes, le compte IMAP des dates récentes pour les mêmes messages.
  • Regardez la plage. Dans un dossier du compte IMAP, les dates de réception tiennent dans quelques heures, voire quelques minutes, autour du moment où vous avez déplacé les dossiers.
  • Ouvrez la source d'un message. Dans Thunderbird, Affichage puis Source du message ; dans Outlook, les propriétés du message donnent les en-têtes. Vous devez y retrouver une ligne Date: ancienne alors que l'affichage indique une date récente.
  • Vérifiez l'ordre. Les messages apparaissent dans l'ordre où le client les a copiés, pas dans l'ordre chronologique.

Voici ce que donne la comparaison sur un message réel :

Date: Tue, 14 Mar 2017 09:12:45 +0100          (dans le message, intact)
Date affichée par le compte IMAP : jour de la copie   (métadonnée du serveur)

Si ces deux lignes ne racontent pas la même histoire, vous y êtes. Et si les dates affichées sont fausses mais que Date: l'est aussi, c'est un autre problème, plus rare, qui ne relève pas de cet article.

(D'ailleurs, si vous n'avez jamais lu les en-têtes bruts d'un email, prévoyez un café : ce n'est pas exactement une lecture de plage.)

Trier par date d'envoi : un pansement

Le réflexe est de passer le tri sur la date d'envoi. Dans Outlook, ça marche à peu près, à condition de le refaire sur chaque dossier et sur chaque appareil. Mais la recherche, les notifications, les règles basées sur l'ancienneté et les vues sur mobile continuent d'utiliser la date de réception. Un utilisateur qui cherche "le mail de septembre dernier" sur son téléphone ne verra rien de logique.

Autre piste tentante : recommencer la copie. Sur un compte déjà utilisé, ça produit surtout des doublons à côté des messages déjà présents, avec les mêmes dates fausses ou d'autres. Une bonne centaine de dossiers plus tard, vous n'avez plus une seule boîte propre.

La correction côté serveur

La bonne nouvelle, c'est que la date d'origine est toujours là. La correction consiste à faire en sorte que le compte de destination l'affiche, sans toucher au contenu de vos messages.

C'est ce que fait Redate. Le service se connecte à la boîte mail (Google Workspace par délégation de domaine, Microsoft 365, Outlook.com et Hotmail avec le compte Microsoft de chaque personne, ou IMAP direct avec l'adresse et le mot de passe). Il n'a pas besoin de savoir quel outil a causé le problème : il repère les emails dont la date affichée ne correspond pas à leur date d'origine, que la cause soit un glisser-déposer depuis un Takeout mbox ou autre chose. Le scan est gratuit et vous montre l'ampleur des dégâts avant toute décision.

Pour la correction elle-même, Redate s'appuie sur un moteur de correction propriétaire, un pipeline d'analyse multi-étapes qui examine la chaîne d'en-têtes de chaque message et rend à chaque email sa date d'origine. Chaque email corrigé est ensuite vérifié individuellement, avec une validation de conformité RFC et une préservation de la structure du message. Les originaux ne sont jamais supprimés : ils restent dans un dossier visible de votre boîte mail jusqu'à ce que vous les supprimiez vous-même.

Pourquoi bricoler soi-même est risqué

Comprendre le problème est une chose. Le corriger sur 15 000 emails sans en perdre un seul, c'en est une autre.

Un script qui fonctionne sur dix messages de test ne survit pas à une boîte de production de 30 000 messages. Il rencontre des emails S/MIME signés, dont la moindre modification casse la signature. Des messages PGP chiffrés. Des structures multipart/alternative imbriquées, des frontières MIME incohérentes, des Content-Transfer-Encoding inattendus, des en-têtes non-ASCII encodés en RFC 2047, des pièces jointes de 40 Mo. Puis viennent les quotas d'API, l'erreur 429 Too Many Requests à 3 h du matin en plein batch, les timeouts réseau qui interrompent l'opération au message 11 874.

Et ensuite ? Comment savoir que chaque message est intact ? Sans mécanisme de rollback, une erreur laisse des messages en double, des pièces jointes perdues, des fils de discussion brisés, des libellés disparus. Redate contrôle chaque email automatiquement et garde l'original à portée de main, précisément pour que vous n'ayez jamais à parier là-dessus.

Un dernier conseil, gratuit : gardez vos archives Takeout d'origine tant que la boîte n'est pas validée. Le fichier mbox reste la copie de référence, même quand le compte de destination a l'air correct.

Selon le client que vous avez utilisé pour la copie, les guides détaillés suivants décrivent le cas précis : corriger les dates d'une copie IMAP faite dans Thunderbird et le même cas dans Apple Mail.

Votre Takeout est déjà copié sur le compte IMAP et les dates sont fausses ? Lancez le scan gratuit de Redate pour voir combien d'emails sont concernés, puis corrigez-les en paiement unique, sans limite de taille de boîte.

Articles connexes