Automatiser le nettoyage de Gmail avec Google Sheets

Automatisez le nettoyage de votre Gmail avec Google Sheets est le but de cet article.

Avec le retour du printemps, nombreux sont ceux qui profitent de cette saison pour faire le grand ménage et organiser leur espace. Cette année, pourquoi ne pas étendre ce rituel à votre boîte de réception Gmail ?

Le script que je vous propose vous permet de lister, organiser et appliquer des actions sur vos emails directement depuis Google Sheets. Ce processus automatisé n’est pas seulement un gain de temps mais aussi un excellent moyen de maintenir une boîte de réception impeccable.

Fonctionnalités clés du script

  1. Listage automatique des emails : Le script extrait et liste les emails directement dans une feuille Google Sheets, vous permettant de visualiser et trier facilement vos messages sans vous perdre dans l’encombrement de Gmail.
function listerEmails() {

const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
feuille.clear();
feuille.appendRow(['Expéditeur', 'Sujet', 'Date', 'Action']);

const rangeEntete = feuille.getRange("A1:D1");
rangeEntete.setFontWeight("bold");
feuille.setFrozenRows(1);

const discussions = GmailApp.search('label:inbox', 0, 500);
const donneesEmails = discussions.reduce((acc, discussion) => {
const messages = discussion.getMessages();
messages.forEach(({getFrom, getSubject, getDate}) => {
acc.push([getFrom(), getSubject(), Utilities.formatDate(getDate(), Session.getScriptTimeZone(), 'yyyy-MM-dd'), '']);
});
return acc;
}, []);

if (donneesEmails.length > 0) {
feuille.getRange(2, 1, donneesEmails.length, 4).setValues(donneesEmails);
}

const derniereLigne = feuille.getLastRow();
const plageValidation = feuille.getRange(2, 4, derniereLigne - 1);
const regleValidation = SpreadsheetApp.newDataValidation()
.requireValueInList(['Supprimer', 'Archiver', 'Lu', 'Étiquetter'], true)
.setHelpText('Sélectionnez une action pour cet email')
.build();
plageValidation.setDataValidation(regleValidation);

}
  1. Actions personnalisables : Que vous souhaitiez archiver, supprimer, marquer comme lu, ou étiqueter des emails, faites-le en masse avec des options préconfigurées. Configurez ces actions via une interface utilisateur simple dans Google Sheets, puis laissez le script s’occuper du reste.
function appliquerActions() {
const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const valeurs = feuille.getDataRange().getValues();

// Vérifier si l'étiquette 'A traiter' existe, sinon la créer
let labelTraite = GmailApp.getUserLabelByName("A traiter") || GmailApp.createLabel("A traiter");

valeurs.slice(1).forEach(([expediteur, sujet, date, action]) => {
action = action.toLowerCase();
const requete = `from:(${expediteur}) subject:("${sujet}") after:${Utilities.formatDate(new Date(date), Session.getScriptTimeZone(), 'yyyy-MM-dd')}`;
const discussions = GmailApp.search(requete);
console.log(`Action: ${action}, Requête: ${requete}, Trouvé: ${discussions.length} discussion(s)`);

discussions.forEach(discussion => {
switch(action) {
case 'supprimer':
discussion.moveToTrash();
break;
case 'archiver':
discussion.moveToArchive();
break;
case 'lu':
discussion.markRead();
break;
case 'étiquetter':
discussion.addLabel(labelTraite);
break;
default:
console.log(`Action non reconnue : ${action}`);
}
});
});
}
  1. Menu personnalisé : Accédez aux fonctions du script grâce à un menu ajouté dans Google Sheets. Ce menu vous permet de lancer les opérations de listage et d’application d’actions sur vos emails, ainsi que d’afficher des informations sur le développeur et d’autres options supplémentaires.
const onOpen = () => {
const ui = SpreadsheetApp.getUi();
ui.createAddonMenu()
.addItem('Lister les emails', 'listerEmails')
.addItem('Appliquer les actions', 'appliquerActions')
.addSeparator()
.addItem('À propos', 'afficherInfosDeveloppeur')
.addToUi();
}

Automatisation avancée

Le script utilise des techniques avancées pour filtrer et traiter les emails basés sur les critères que vous définissez. D’autres possibilités peuvent vous permettre automatiquement d’archiver par exemple tous les messages de plus de 30 jours ou marquer comme lus les emails provenant de sources spécifiques.

function nettoyerEmails() {
var joursAnciens = 30;
var dateMax = new Date();
dateMax.setDate(dateMax.getDate() - joursAnciens);

var discussions = GmailApp.search('before:' + dateMax.toISOString().substring(0, 10));

for (var i = 0; i < discussions.length; i++) {
// Archiver ou supprimer selon les préférences
GmailApp.moveThreadsToArchive([discussions[i]]);
}
}


Comment utiliser le script ?

Pour commencer, il vous suffit de copier ce fichier modèle Google Sheets et de suivre les instructions simples pour connecter votre compte Gmail. Une fois configuré, un menu Nettoyage de Gmail vous permet de lister vos emails, et ensuite, vous pouvez spécifier les actions à appliquer à chaque message.

Ce nettoyage de printemps numérique ne se limite donc pas à nettoyer votre espace physique, mais peut s’étendre également à votre espace numérique. Avec ce script Google Apps, prenez le contrôle de votre boîte de réception Gmail et transformez-la en un modèle d’efficacité et de clarté. Dites adieu au désordre et bonjour à une boîte de réception plus organisée et gérable