Mail.app amasse chaque pièce jointe que vous avez jamais reçue
Mail garde un cache local de chaque message et pièce jointe, même des comptes supprimés. Voici où il se trouve et ce qu'on peut vider.
D’autres guides de ce type sont pour l’instant disponibles uniquement en anglais. Voir tous les articles
Si vous utilisez Apple Mail avec les mêmes comptes depuis plusieurs années, ce chiffre est généralement une surprise :
du -sh ~/Library/Mail
10 à 30 Go, c’est ordinaire pour quelqu’un qui a connecté deux ou trois comptes e-mail depuis un moment, en particulier si l’un d’eux reçoit régulièrement de grosses pièces jointes — factures, fichiers de design, photos envoyées en pièce jointe plutôt qu’en lien.
Pourquoi c’est aussi gros : Mail garde une copie locale de tout
Apple Mail télécharge et met en cache une copie locale de chaque message et de chaque pièce jointe pour un accès hors ligne et une recherche rapide, pour chaque compte configuré, indéfiniment. Contrairement à un client e-mail web qui récupère les données à la demande, Mail part du principe que vous voulez tout avoir disponible hors ligne — ce qui est réellement utile, mais dont le coût en stockage s’accumule silencieusement au fil des années.
# See which account is actually responsible for the size
du -sh ~/Library/Mail/V*/*/ 2>/dev/null | sort -hr
Le dossier numéroté V* (V9, V10, et ainsi de suite, le numéro augmentant à chaque changement
de format de la base de données macOS/Mail) contient un sous-dossier par compte configuré, nommé
avec un identifiant interne — comparez avec Mail → Réglages → Comptes si vous devez faire
correspondre un dossier à un compte précis.
Les pièces jointes téléchargées, en particulier
Les pièces jointes sont le plus gros poste pour la plupart des gens, et Mail en garde son propre cache séparé, en plus de la base de données des messages elle-même :
du -sh ~/Library/Containers/com.apple.mail/Data/Library/Mail\ Downloads
Ce dossier contient les pièces jointes que vous avez ouvertes ou enregistrées depuis Mail — sûr à vider si vous avez déjà sauvegardé ailleurs ce dont vous aviez réellement besoin, puisque la pièce jointe existe toujours dans l’e-mail d’origine et peut être rouverte depuis là :
rm -rf ~/Library/Containers/com.apple.mail/Data/Library/Mail\ Downloads/*
Les comptes supprimés il y a des années peuvent encore avoir des données en cache
C’est la partie que la plupart des gens n’anticipent pas : supprimer un compte e-mail des réglages de Mail ne purge pas toujours immédiatement ni complètement son cache local. Si vous avez changé d’emploi, fermé une ancienne adresse e-mail, ou changé de fournisseur, vérifiez si Mail conserve encore l’historique complet des messages de ce compte :
# List every account folder currently on disk, whether or not it's
# still configured in Mail → Settings → Accounts
ls ~/Library/Mail/V*/
Comparez ceci avec votre liste de comptes actuelle dans les réglages de Mail. Un dossier sans compte
actif correspondant peut être supprimé sans risque — quittez d’abord Mail, puis supprimez le
sous-dossier de compte spécifique plutôt que tout le répertoire V*.
Reconstruire l’index si la recherche semble cassée ensuite
Mail maintient un index de recherche (Envelope Index) en parallèle des données brutes des
messages. Si la recherche de Mail se comporte bizarrement après un nettoyage — ou indépendamment de
tout nettoyage, car cela arrive aussi tout seul de temps en temps — le reconstruire est la solution
standard, et ça ne touche pas à vos messages proprement dits :
# Quit Mail first
rm ~/Library/Mail/V*/MailData/Envelope\ Index*
# Relaunch Mail — it rebuilds the index automatically, which can take
# several minutes for a large mailbox
Ce qu’il n’est pas prudent de toucher
Les sous-dossiers de compte des comptes que vous utilisez activement contiennent le contenu réel de vos messages pour l’accès hors ligne — c’est différent de chaque cache couvert ailleurs sur ce blog, parce que pour les comptes IMAP les messages existent aussi sur le serveur de messagerie, mais pour les boîtes aux lettres purement locales (certaines anciennes configurations POP, ou les boîtes aux lettres Sur mon Mac), la copie locale peut être la seule copie. Vérifiez le type de votre compte avant de supposer qu’une approche « tout supprimer et laisser la resynchronisation faire son travail » est sans risque — pour les comptes IMAP, ça l’est généralement (Mail retélécharge depuis le serveur), pour les boîtes aux lettres Sur mon Mac, ça ne l’est pas.
Où ça se situe par rapport au reste de votre disque
Mail représente un coût réel et permanent qui augmente continuellement tant que vous recevez des e-mails avec pièces jointes, ce qui le rapproche davantage de Photos que d’un cache de compilation de développeur — de vraies données que vous pourriez vouloir garder, pas un simple sous-produit. La seule cible réellement sûre, sans arbitrage à faire, ce sont les pièces jointes déjà sauvegardées ailleurs et les restes d’anciens comptes, tous deux couverts plus haut.
DevCruft, une application Mac gratuite pour développeurs en cours de création, doit afficher le
stockage de Mail sur la carte aux côtés de tout le reste, pour en faire une quantité connue et
mesurée plutôt qu’un dossier enterré à trois niveaux dans ~/Library/Containers, auquel presque
personne ne pense à aller vérifier. Rejoignez la liste d’attente pour savoir quand
elle sortira.
Pour la situation équivalente avec les pièces jointes iMessage, voir le guide de stockage de Messages.