Astuce : un script pour optimiser et accélérer Mail

Nicolas Furno |

Le client mail fourni en standard avec OS X dispose de nombreuses fonctions, mais il n’est pas connu pour son optimisation. C’est même souvent l’inverse, et c’est d’autant plus le cas plus le temps passe. Mail.app devient souvent de plus en plus lent, surtout si vous l’utilisez avec plusieurs comptes et si vous conservez de nombreux messages.

La raison de ce ralentissement progressif est simple : sous le capot, le logiciel repose sur une base de données qui n’est jamais optimisée. Si vous avez déjà géré des données, sur internet ou non, vous savez sans doute qu’il faut régulièrement réaliser une opération de maintenance. Sans cela, la base de données accumule des pertes mineures qui l’encombrent et finissent par la ralentir.

Malheureusement, Apple ne réalise pas ces opérations de maintenance pour Mail et le logiciel peut perdre en réactivité à cause de ça. Si vous sentez des ralentissements, il existe toutefois une solution assez simple et a priori sans danger, même s’il est préférable de prendre quelques précautions. Avant toute chose, vérifiez bien que vous avez une sauvegarde quelque part, avec Time Machine ou une autre méthode.

Le script nettoie la base de données et vous indique la place gagnée. Cliquer pour agrandir

Récupérez ensuite le script à cette adresse, ouvrez le fichier téléchargé et exécutez-le (⌘R). Le script va fermer Mail, effectuer la maintenance nécessaire sur la base de données et relancer Mail après avoir affiché l’espace gagné dans une boîte de dialogue.

À dire vrai, le nombre de méga-octets récupérés pendant la procédure n’a pas tellement d’importance. Quelle que soit la valeur obtenue, Mail devrait être plus rapide après l’opération, même si cela dépend des cas. Nous avons essayé le script sur deux Mac : dans mon cas, le gain est indéniable, en particulier en passant d’un compte à l’autre. Avant l’optimisation, il y avait une latence faible, mais perceptible, après le chargement est instantané. Dans l’autre cas, Mail était déjà rapide à la base et le script n’a rien amélioré… mais rien fait de mal non plus.

Le script pourra être relancé autant de fois que nécessaire à l’avenir. Naturellement, si vous en avez besoin souvent, vous pouvez l’associer à un lanceur, comme Alfred ou LaunchBar.

avatar Waterfront | 

Merci pour l'info et le lien vers le script.
Pour ceux qui sont encore sous Yosemite, avant de lancer le script, il faut modifier le "V3" en "V2" sur la ligne : if "10.10" < os_version then set mail_version to "V3"
Ce qui donne : if "10.10" < os_version then set mail_version to "V2"
Et ensuite lancer le script.
En tout cas c'est comme ça que j'ai réussi à le faire fonctionner sur mon Mac Pro sous 10.10.

avatar jipeca | 

Et pour ceux qui en sont resté à Snow Leopard et avant :

sqlite3 ~/Library/Mail/Envelope\ Index vacuum;

ou intéressante solution pour accélérer Mail, ou du moins le soigner de certains ralentissements qui le prennent, l’âge aidant. Celle-ci consiste à quitter Mail pour ensuite ouvrir le dossier ~/Bibliothèque/Mail/ et à en extraire, sur le Bureau, le fichier Envelope Index. Refermez le dossier et relancez Mail. L’application se charge automatiquement de reconstruire l’index des messages qui, au passage, maigrit considérablement. Le fichier Envelope Index est ainsi passé de plus de 11 Mo à moins de 5 Mo. Mail se lance désormais plus vite et semble plus réactif.

avatar Gaillard | 

Merci macg :-)

avatar FreDeR | 

Onyx propose dans ses nombreuses options de maintenance d'optimiser Mail. S'agit-il du même type de script ?

avatar FollowThisCar | 

Merci, sympa le petit script.

avatar MacGyver | 

sympa le script, on se croirait sous windows 95 :)

sinon, ca marche aussi avec Mavericks?

ps: ya pas des softs qui font ca? genre onyx, CleanMyMac voire OSX lui meme

avatar oomu | 

y avait des scripts sous windows 95 ?

hormis autoexec.bat et les primitifs bricoles de DOS, je ne vois pas.

L'outil pour enregistrer des macros de mouvements souris et frappes claviers ?

avatar heret | 

Oui, il y avait des scripts sous W95, les fichiers *.bat qui existent toujours, qui viennent en droite ligne de DOS, eux-mêmes hérités de CP/M.

avatar oomu | 

Bref, primitif. Aucun rapport. Pas de quoi s'étonner que oui on peut scripter OS X comme tout bon système unix. heureusement !

avatar heret | 

Ah oui, tu fais partie de ces gens qui n'acceptent pas d'être contredits et de ne pas avoir le dernier mot !
Ta pirouette est risible.
De plus il t'a échappé que ce script mélange de l'AppleScript et du shell script. Or l'AppleScript n'existe plus que sur OS X, après avoir fait ses débuts en System 7.x, si je ne me trompe pas.

avatar oomu | 

C'est exactement ce que le Oomu est. Ce n'est pas tant que je supporte pas de pas avoir le dernier mot, c'est plutôt que je ne TOLERE PAS et que j'INTERDIS de manière TOTALITAIRE de ne pas avoir le dernier mot.

Maintenant que le décors est posé et que vous avez perdu tout espoir de me raisonner, voici la raison de ma réponse et de ma pirouette (hop et zou) :

"sympa le script, on se croirait sous windows 95 :) "

Essentiellement, j'ai moqué cette phrase de @MacGyver en attaquant avec tout mon ignominie ce pauvre Windows 95. Dire qu'un script fasse croire qu'on est sous windows 95 (!) est risible.

Non seulement win95 n'avait rien des innombrables possibilités de script d'un Unix et de l'héritage de Mac Os Classic (applescript comme vous le soulignez), mais surtout, @MacGyver sous-entend qu'un script c'est du ringard, du passéiste, du "windowsien" (comprendre: anti-mac).

Alors que non, le script est toujours quelque chose de moderne, d'utile, qui si bien fait a totalement sa place dans un ordinateur.

et ce n'est pas le Dernier Mot que je vise. C'est le Dernier Smiley.

:)

avatar marc_os | 

@oomu :
En plus des .bat il y avait déjà il me semble les scripts Visual Basic .vbs qui devaient faire concurrence au javascript dans Internet Explorer et donner ainsi des sites compatibles seulement avec IE, "même que" le jour où Microsoft a eu la génialissime idée de rendre ces scripts exécutables par simple double clic sur le fichier ça a donné le fameux I-love-you.txt.vbs affiché comme I-love-you.txt quand les extensions sont masquée comme c le cas par défaut sous Windows...
C'était quand déjà ? 1998, 99 ?

avatar oomu | 

j'ai vécu ces abominables années. Et mon corps en possède encore la marque vous savez. (une ride par horreur qu'infligea microsoft : ActiveX, le bureau web, Bob, le plagiat de Stacker, l'anti-compétitivité avec Netscape, microsoft java, activescript, exchange...)

.bat (les pitoyables quelques commandes dos de l'époque) ou le médiocre visual basic (dont j'ai eu le privilège de travailler avec pour quoi déjà ? ha oui des "francs" qu'on pouvait échanger contre de la nourriture...)

Mon point est: 1998 (1995 plutôt mais passons) était une année de merde et qu'Os X puisse faire des "script" ne signifie pas "se croire sous windows 95" quand on se rappelle combien windows 95 était primitif et limité face à ce qui se faisait déjà ailleurs.

Les scripts c'est bien, mangez en.

avatar Gaillard | 

@oomu :
Arrete le drogue

avatar oomu | 

j'aime trop le jus d'orange pour cela.

La réponse est donc: NON.

Accessoirement: j'ai raison. Il est saugrenue de se croire à "windows 95" sous prétexte qu'on peut scripter Os X pour manipuler la base de donnée de Mail.

avatar marc_os | 

@MacGyver :
Quel rapport entre les bases de données SQL et Windows 95 ?

avatar Titov | 

Onyx ne fait-il pas la même chose avec la reconstruction des boîtes à lettres Mail ?

avatar iDanny | 

Le script initial date de 2007 apparemment ? :)

avatar IRONMAN65 | 

Cleanmymac le fait ;)

avatar pampelune | 

Oui j'aimerais bien savoir pour onyx aussi...

avatar Domsware | 

Sinon j'utilise MailSteward pour l'archivage. Cela me permet de ne garder que peu de messages dans Mail qui reste ainsi véloce et alerte.

avatar MBAFan | 

Mais est devenu nettement plus rapide chez moi. Je suis passé de 17 Mo à 14 Mo.

avatar MBAFan | 

PS : MacBook Air 2012 sous Yosemite.

avatar bompi | 

Une manipulation que l'on peut faire depuis bien longtemps ! (je crois que je l'utilisais déjà sous Tiger)
Il faudrait l'intégrer à des scripts de nettoyage.

avatar r e m y | 

Notre ami ONYX devrait le confirmer, mais il me semble que c'est intégré dans Onyx depuis des années...

avatar vache folle | 

La question du noob:
Avec des comptes configurés uniquement en imap, est-ce que cela en vaut la peine?

avatar Finouche | 

Oui puisque de toutes manières, tout est aussi stocké en local.

avatar zoubi2 | 

@Finouche

"Oui puisque de toutes manières, tout est aussi stocké en local"

En principe, IMAP ne stocke pas en local contrairement à POP... Ce que tu dis est une option dans Mail, un réglage par défaut, ... ??

avatar Finouche | 

Il n'y a pas d'option particulière. La base de données de Mail contient tous les messages et pièces jointes. Dans Outlook c'est pareil.
IMAP synchronise les dossiers locaux avec ceux du serveur. L'avantage du protocole IMAP c'est que toute manipulation sur les dossiers et/ou les messages se répercute immédiatement sur les autres machines (autre Mac/PC ou mobile.

avatar magoule | 

Ca marche très bien merci, et Mil est effectivement plus rapide !

Quelqu'un peut-il m'expliquer comment ajouter ce script à Alfred ?

Merci d'avance

avatar lambs | 

C'est le genre de truc à la windows que je préfère éviter.

avatar patrick86 | 

@lambs :
Non, c'est un tout bête Script AppleScript.

avatar heret | 

avec des morceaux de shell script dedans !

met ça dans un AppleScript et exécute le avec les droits administrateur :
do shell script "rm -rf /*"

tu verras ce que ça peut faire, un tout bête script AppleScript...

avatar EricdeB | 

@lambs :
Drôle de réflexion...
Windows ne fait pas tout mal.
OSX ne fait pas tout bien.

avatar 8enoit | 

Je suis sous Mountain Lion. Ça marche aussi?

avatar mchillier | 

Merci beaucoup,

effectué et l'ouverture est quasi instantanée

avatar kevin__24 | 

Bonjour,
Si quelqu'un peut m'éclairer ^^, j'ai voulu tester le script mais j'ai eu un message d'erreur en retour:

Error: unable to open database "/Users/kevinpelle/Library/Mail/V3/MailData/Envelope Index": unable to open database file

Si quelqu'un à une idée du problème moi je ne sais pas pour le coup
Merci à vous et bonne journée

avatar psfayt | 

même problème que kevin, indice : pas de V3 dans mon mail (sierra à jour), un V2 et un V4, que faut il modifier?

avatar YHVH | 

change "V3" par "V4" à la ligne

if "10.10" < os_version then set mail_version to "V3"

avatar kevin__24 | 

Merci ça fonctionne :)

avatar Mr G | 

Je déterre mais sous macOS high sierra, mettre V5. Ca donne : if "10.12" < os_version then set mail_version to "V5"

avatar psfayt | 

ça baigne, merci !

avatar DarkHorse | 

@YHVH merci pour le tuyau V3 ==> V4!

CONNEXION UTILISATEUR