Avez-vous une boîte de réception Gmail qui déborde de messages ? Vous sentez-vous dépassé par le nombre d’e-mails qui s’accumulent, surtout ceux que vous avez étiquetés pour une raison spécifique mais que vous n’avez plus besoin de conserver indéfiniment ? Cet article est pour vous ! Nous allons explorer une solution simple et efficace pour automatiser le nettoyage de votre boîte de réception en supprimant automatiquement les anciens messages qui portent une étiquette particulière.
Le problème : une boîte de réception saturée
Nous utilisons tous Gmail au quotidien, que ce soit pour le travail, les projets personnels ou les communications avec nos proches. Au fil du temps, notre boîte de réception peut devenir un véritable fouillis. Même en utilisant les étiquettes (labels) pour organiser nos messages, nous pouvons nous retrouver avec des centaines, voire des milliers, d’e-mails archivés qui ne sont plus pertinents. Supprimer manuellement ces messages est une tâche fastidieuse et chronophage.
La solution : L’automatisation avec Google Apps Script
Heureusement, Google offre une solution puissante pour automatiser les tâches dans Gmail : Google Apps Script. Ce langage de script basé sur JavaScript nous permet de créer des scripts personnalisés pour interagir avec les services Google, y compris Gmail.
Dans cet article, nous allons vous fournir un script Google Apps Script qui supprime automatiquement les messages Gmail plus anciens qu’un certain nombre de jours (par exemple, 7 jours) et qui portent une étiquette spécifique (par exemple, « Archives »).
Le code pas à pas
Voici le code Apps Script que vous pouvez utiliser :
/** * Supprime les messages Gmail plus anciens que X jours et ayant un libellé spécifique. */ function supprimerAnciensMessagesAvecLibellé() { // Nombre de jours à conserver pour les messages const jours = 7; // Nom du libellé à vérifier (par exemple, "Archives") const nomDuLibellé = "Archives"; // Calcule la date limite (messages antérieurs à cette date seront supprimés) const dateLimite = new Date(); dateLimite.setDate(dateLimite.getDate() - jours); // Obtient le libellé (si il existe) const libellé = GmailApp.getUserLabelByName(nomDuLibellé); // Si le libellé n'existe pas, affiche un message d'erreur et arrête l'exécution if (!libellé) { Logger.log("Le libellé '" + nomDuLibellé + "' n'existe pas. La suppression est annulée."); return; // Arrête la fonction } // Recherche les fils de discussion (threads) Gmail antérieurs à la date limite et ayant le libellé spécifié const filsDeDiscussion = GmailApp.search('before:' + dateLimite.toISOString().slice(0, 10) + ' label:' + nomDuLibellé); // Parcours chaque fil de discussion trouvé for (const fil of filsDeDiscussion) { // Obtient tous les messages du fil de discussion const messages = fil.getMessages(); // Variable pour vérifier si tous les messages du fil sont anciens let tousLesMessagesAnciens = true; // Parcours chaque message du fil de discussion for (const message of messages) { // Si un message est plus récent que la date limite, // le fil n'est pas entièrement composé de messages anciens if (message.getDate() >= dateLimite) { tousLesMessagesAnciens = false; break; // Sort de la boucle, plus besoin de vérifier les autres messages } } // Si tous les messages du fil sont anciens, déplace le fil entier à la corbeille if (tousLesMessagesAnciens) { fil.moveToTrash(); Logger.log('Fil de discussion déplacé à la corbeille : ' + fil.getFirstMessageSubject()); } else { // Sinon, déplace uniquement les messages individuels antérieurs à la date limite à la corbeille for (const message of messages) { if (message.getDate() < dateLimite) { message.moveToTrash(); Logger.log('Message déplacé à la corbeille : ' + message.getSubject()); } } } } // Affiche un message de journal indiquant que la suppression des anciens messages est terminée Logger.log('Suppression des anciens messages avec le libellé "' + nomDuLibellé + '" terminée.'); }
Explication du code :
- Définition des paramètres :
- jours: Le nombre de jours à conserver pour les messages. Par exemple, si vous mettez 7, les messages de plus de 7 jours seront supprimés.
- nomDuLibellé: Le nom de l’étiquette Gmail à utiliser pour filtrer les messages. Seuls les messages portant cette étiquette seront considérés pour la suppression.
- Calcul de la date limite : Le script calcule la date limite en soustrayant le nombre de jours spécifié à la date actuelle.
- Obtention du libellé : Le script récupère l’objet Gmail Label correspondant au nom du libellé fourni. Si le libellé n’existe pas, le script s’arrête pour éviter les erreurs.
- Recherche des messages : Le script utilise la méthode GmailApp.search pour rechercher les messages qui correspondent à deux critères :
- Ils sont antérieurs à la date limite.
- Ils portent l’étiquette spécifiée.
- Suppression des messages : Le script parcourt les résultats de la recherche et supprime les messages qui correspondent aux critères. Il gère les fils de discussion (conversations) de manière intelligente :
- Si tous les messages d’un fil de discussion sont anciens, le fil entier est déplacé à la corbeille.
- Si un fil de discussion contient à la fois des messages anciens et récents, seuls les messages anciens sont supprimés.
- Journalisation : Le script utilise la fonction Logger.log pour enregistrer les actions effectuées, ce qui vous permet de suivre le processus de suppression et de déboguer le script si nécessaire.
Comment utiliser le script ?
- Ouvrez Google Apps Script : Allez sur script.google.com et créez un nouveau projet.
- Copiez le code : Copiez le code ci-dessus et collez-le dans l’éditeur de script.
- Personnalisez les paramètres :
- Modifiez la valeur de jours pour définir la période de conservation souhaitée.
- Remplacez « Archives » par le nom de l’étiquette que vous souhaitez utiliser.
- Autorisez le script : Exécutez le script. Google vous demandera d’autoriser le script à accéder à votre compte Gmail.
- Créez un déclencheur (facultatif mais recommandé) : Pour automatiser complètement le processus, vous pouvez créer un déclencheur pour exécuter le script à intervalles réguliers (par exemple, tous les jours, toutes les semaines). Dans l’éditeur Apps Script, cliquez sur l’icône en forme d’horloge (« Déclencheurs ») et ajoutez un nouveau déclencheur.
Avantages de cette approche :
- Automatisation : Une fois configuré, le script s’exécute automatiquement, ce qui vous fait gagner du temps et vous évite d’avoir à supprimer manuellement les messages.
- Ciblage précis : En utilisant les étiquettes, vous pouvez cibler précisément les messages que vous souhaitez supprimer, ce qui vous permet de conserver les messages importants.
- Personnalisation : Vous pouvez facilement personnaliser le script en modifiant le nombre de jours et le nom de l’étiquette pour l’adapter à vos besoins spécifiques.
- Maintien d’une boîte de réception propre : En supprimant régulièrement les messages inutiles, vous pouvez garder votre boîte de réception Gmail organisée et facile à gérer.
Ne laissez pas votre boîte de réception Gmail vous submerger. En utilisant ce script Google Apps Script, vous pouvez automatiser le processus de suppression des anciens messages étiquetés et maintenir une boîte de réception propre et organisée. Prenez le contrôle de votre Gmail dès aujourd’hui et profitez d’une expérience de messagerie plus sereine !