Apple Mail : quand il est impossible de déplacer un message d’une boite à une autre

Bug curieux chez un client ces derniers jours : suite à un crash ou à une fausse manipulation, plusieurs milliers de messages se sont déplacés dans des dossiers « Mail – éléments récupérés ». Près de 600 dossiers… Mais surtout, un gros souci, car à chaque tentative de déplacer certains messages dans un autre dossier, on tombe sur le message suivant : 

Le message « Blah blah » n’ pas pu être déplacé dans la boite « Truc ». Impossible de charger le corps du message pour LibM {“199990:34323:Wh*:2017-08-29 17:00:01 CET}”}.

Reconstruire la boite ne servait à rien, pas plus que d’exporter le dossier (la boite exportée pesait quelques Ko) ou de supprimer les messages (même erreur). Même chose également en supprimante les fichiers d’index de Mail. Mes quelques recherches sur le sujet n’ont pas donné grand chose, à part ce message d’un utilisateur sur les forums de discussion d’Apple expliquant qu’il est touché par le problème quand il est offline, par exemple dans un avion. Cela dit, c’était un début de piste intéressant. D’autant plus que certains messages se transféraient mais pas d’autres. Pourquoi donc ?

Après avoir regardé un peu dans la hiérarchie de Mail, j’ai trouvé une solution : certains messages qui posaient souci étaient indiqués dans le Finder comme étant de type .partial.emlx, alors que les autres étaient juste des fichiers .emlx. Et effectivement ces derniers se déplaçaient bien, mais pas les autres.

Et donc, en pratique : 

  1. Quittez Mail.
  2. Dans le Finder, ouvrez votre dossier Bibliothèque personnel (cliquez sur le menu Aller tout en enfonçant la touche Option pour afficher le menu Bibliothèque).
  3. Allez dans le dossier Mail/V4 (vous êtes donc dans ~/Library/Mail/V4). 
  4. Cherchez le compte ou se trouvent les messages qui posent problème. Pas forcément évident si vous avez beaucoup de comptes, car ils utilisent un UUID plutôt qu’un nom de compte… Dans ce cas, cherchez un dossier au nom bien particulier qui se trouverait sur ce compte (sinon créez un dossier « GG est le plus grand » et vous le retrouverez facilement, pensez juste à quitter Mail ensuite.
  5. Placez-vous dans le dossier où se trouvent les mails problématiques.
  6. Ouvrez le dossier qui s’y trouve (avec un numéro) puis le dossier Data.
  7. Dans les souss-dossiers qui s’y trouvent, vous découvrirez différents fichiers de mail, dont certains commencent par .partial.emlx : ce sont ces messages qui posent souci. En réalité ils sont bien complets (on peut les consulter sans problème) mais pour une raison inconnue Mail les a considérés comme incomplets.
  8. Supprimez donc « .partial » du nom de chaque message. Si vous disposez de centaines de dossiers, c’est le moment de mettre le nez dans Automator (Sylvain Gamel a écrit d’excellents bouquins sur le sujet ) !
  9. Relancez Mail.
  10. Déplacez vos messages à nouveau comme vous le souhaitez.