Fermer le menu
 

Astuce : mise à jour du script pour optimiser Mail

Nicolas Furno | | 14:57 |  38

Vous utilisez Mail.app, le client mail par défaut de macOS, et vous constatez que ses performances baissent au fil du temps ? C’est « normal » : la base de données utilisée par l’application devrait être optimisée de temps en temps pour maintenir des performances identiques. Pour une raison ou une autre, Apple ne le fait pas automatiquement et même si la situation s’est améliorée ces dernières années, le client mail de macOS ralentit au fil du temps.

Régler ce problème est toutefois assez facile. Il existe un script en AppleScript qui optimise la base de données utilisée par Mail et améliore les performances de manière assez significative. C’est surtout visible si vous avez plusieurs boîtes de réception et que chaque boîte contient un grand nombre de messages. Le passage d’une boîte à l’autre est immédiat après avoir lancé le script, tout comme le passage d’un message à l’autre.

Le script dans sa dernière version à gauche, la fenêtre qui s’affiche après exécution à droite. Cliquer pour agrandir
Le script dans sa dernière version à gauche, la fenêtre qui s’affiche après exécution à droite. Cliquer pour agrandir

Nous avions évoqué ce script il y a deux ans, mais il nécessitait une mise à jour pour High Sierra. Si vous l’utilisiez, vous pouvez télécharger la dernière version à cette adresse et mettre à jour votre script. L’optimisation fonctionnera désormais pour toutes les versions macOS depuis au moins Lion. Nous l’avons utilisé sans problème sur Sierra et High Sierra, mais vérifiez bien que vous avez une sauvegarde des mails avant de l’utiliser, au cas où.

Si c’est la première fois que vous entendez parler du script, voici comment l’utiliser. Le plus simple est de télécharger en cliquant sur le lien « Download ZIP » affiché en haut à droite sur cette page. À l’intérieur de l’archive, cliquez deux fois sur le fichier et il s’ouvrira dans l’éditeur de script de macOS. Il ne vous reste plus qu’à l’exécuter, soit avec le raccourci ⌘R, soit en cliquant sur l’icône en forme de triangle dans la barre d’outils. Conservez ensuite le script sur le volume de stockage du Mac pour le lancer de temps en temps, ou alors configurez un lanceur comme Alfred pour l’exécuter directement.


Les derniers dossiers

Ailleurs sur le Web


38 Commentaires Signaler un abus dans les commentaires

avatar Espcustom 23/10/2017 - 15:05 via iGeneration pour iOS

Je connaissais pas. Merci du tuyau 👍

avatar djio101 23/10/2017 - 15:09

Merci beaucoup !

avatar sangoke 23/10/2017 - 15:19 via iGeneration pour iOS

Je connaissais pas non plus je vais tester ça sous peu 😉👍🏻



avatar Bruno de Malaisie 23/10/2017 - 15:28 via iGeneration pour iOS

Il y a-t-il quelque chose du même ordre pour Mail sous iOS?
Ça m’intéresserait...

avatar romainB84 23/10/2017 - 15:29 (edité)

@mag
"C’est surtout visible si vous avez plusieurs boîtes de réception et que chaque boîte contient un grand nombre de messages"

a partir de quel taille (nb de message) vous estimez que ca commence a avoir un interet?
je dois avoir une boite mail avec 10-12 000 mails je dirais (entre ceux recu et ceux envoyé). Donc plutot une petite boite mail.
merci de votre retour

avatar Nicolas Furno macG 23/10/2017 - 15:35

@ romainB84 :

De toute manière, ça ne coûte rien d'essayer. Il n'y aura pas forcément de différence, mais le script ne fera pas de mal.

Pensez bien à vérifier que vous avez une sauvegarde avant malgré tout, on ne sait jamais.

avatar ecosmeri 23/10/2017 - 15:39 via iGeneration pour iOS

@nicolasf

Une sauvegarde est necessaire quand la boite aux lettres est synchro icloud?

avatar Nicolas Furno macG 23/10/2017 - 15:42

@ ecosmeri :

Dans tous les cas. Mais c'est plus pour éviter un scénario catastrophe et, par exemple, une corruption de la base de données. Et ça doit pas arriver, le script est très simple, c'est juste que l'on n'est jamais trop prudent.

Au pire, en IMAP ou Exchange, on peut toujours tout supprimer et reconfigurer les comptes, en effet. C'est long, mais c'est faisable.

avatar romainB84 23/10/2017 - 15:55

ok merci nicolas !
je verrais.
Apres pour le moment je ne ressent aucune lenteur du coté de mail (ou alors c'est que je m'y suis habitué !! et mon mac est plus tout jeune !! 2012)

avatar instantcook 23/10/2017 - 15:39 via iGeneration pour iOS (edité)

Je suis toujours sceptique devant ce type de solution : si c'est si simple, sans risque et automatisable, pourquoi n'est ce pas intégré d'office par Apple ?
Quelqu'un qui s'y connaît a-t-il jeté un œil aux lignes de commandes du script ?
Merci

avatar Nicolas Furno macG 23/10/2017 - 15:45

@ instantcook

Aucune idée sur pourquoi Apple le fait pas, j'imagine qu'ils estiment que c'est pas nécessaire. Comme ça s'est amélioré aussi ces dernières années, peut-être que c'est de moins en moins utile aussi ?

En tout cas, le script est très simple. La partie importante tient en une ligne, et il s'agit uniquement d'exécuter la commande vacuum sur la base de données qui est au format SQLite3. C'est une commande standard d'optimisation, rien de dangereux normalement.

avatar Avenger 24/10/2017 - 09:47 (edité)

@ instantcook

Justement, avec Apple et d'autres éditeurs de solutions informatiques, quand c'est simple et sans risque, cela leur semble visiblement inintéressant. Pour beaucoup de développeurs, c'est moins excitant à programmer. La logique qui semble prévaloir, à l'heure actuelle, c'est "Pourquoi faire simple quand on peut faire compliqué".

avatar Nouvoul 23/10/2017 - 15:40 (edité)

Un peu HS, mais comment retrouver le comportement de Mail glisser (déplacer) un message de la boîte de réception vers une boîte particulière ?
C'était possible avant High Sierra, maintenant je dois passer par le menu "déplacer vers..." ?

avatar Avenger 24/10/2017 - 09:49 (edité)

@ Nouvoul,

En effet, complètement hors sujet. Il y a le forum d'aide pour poser ce type de question.
Cela dit, le "glissé-déposé" fonctionne parfaitement chez moi, sous 10.13.

avatar Nouvoul 25/10/2017 - 10:39

J'ai déjà posé cette question sur le forum, avec d'autres, sans réponse; merci de ton avis.

avatar Jipy 23/10/2017 - 15:54

Il me semble qu'Onyx fait çà aussi, non ?

avatar stefhan 23/10/2017 - 16:10 via iGeneration pour iOS

Ah merci pour l’info et le partage ! 👍

avatar sinbad21 23/10/2017 - 16:13

Je me demande si la commande Reconstruire dans le menu Boîte aux lettres de Mail ne fait pas exactement la même chose.

avatar Mattaustrale 23/10/2017 - 16:15

Comment on installe cet apple script?

avatar FollowThisCar 23/10/2017 - 16:32

Suffit de le double-cliquer, ce qui ouvre son app : AppleScript Editor.

avatar FollowThisCar 23/10/2017 - 16:20 (edité)

Merci Nicolas, et voici mon retour :

* Le nouveau script ne marche pas sur Mavericks 10.9.5
=> "Error: unable to open database "V2": unable to open database file".

* Du coup j'ai retrouvé l'ancien Maintenance Mail, qui, lui, a accepté sans rechigner, et il m'indique avoir réduit la base de données de 77 à 73 MB.

avatar Diafwl 23/10/2017 - 18:23 (edité)

Pour résoudre le problème avec Maverick, il suffit d'ajouter la ligne :
if "10.9" ≤ os_version then set mail_version to "~/Library/Mail/V2/Maildata/Envelope\\ Index"
juste après :
considering numeric strings

avatar Liena 23/10/2017 - 16:44

Mon dieu ! Merci beaucoup pour cette astuce !!! Extra ! 👍

avatar A884126 23/10/2017 - 17:03 via iGeneration pour iOS

Je suppose que c'est le même type de scripte que propose Onyx ou MacCleaner, n'est pas ?

avatar Mattaustrale 23/10/2017 - 17:08 (edité)

Merci Follow this car.

c'est mis à jour.
J'ai un problème que je traine depuis une importation d'un mail Imap. Il a mis tous les mails a la date d'importation et pas a leur date réel de réception ou d'envoi. J'ai vérifié sur le serveur de mail en webmail. Les dates sont bonnes. C'est mail qui deconne. Avez vous une astuce?

Pages