Automatiser le comptage des emails envoyés et reçus avec Google Apps Script
Vous souhaitez suivre votre activité email quotidienne sans effort ? Google Apps Script permet d’automatiser la récupération du nombre d’emails envoyés et reçus sur Gmail et d’exporter ces statistiques directement dans Google Sheets. Dans cet article, nous allons voir comment un script peut enregistrer chaque jour ces données de manière autonome.
Pourquoi automatiser le comptage des emails ?
Le suivi des emails peut être utile pour :
- Analyser votre charge de travail : Identifier les journées les plus chargées.
- Optimiser votre gestion du temps : Évaluer votre volume d’échanges quotidien.
- Améliorer la communication d’équipe : Comparer les interactions internes et externes.
Grâce à Google Apps Script, cette tâche peut être exécutée automatiquement chaque jour.
Le fonctionnement du script
Ce script exécute plusieurs étapes :
1. Détermine la date d’hier.
2. Recherche les emails envoyés et reçus sur Gmail.
3. Comptabilise le nombre total de messages échangés.
4. Enregistre ces informations dans une feuille Google Sheets.
Le script Google Apps Script
Voici le code complet, optimisé en ES6+ avec des variables en français :
function compterEmailsDHier() { // Calculer la plage de dates pour hier const aujourdHui = new Date(); const hier = new Date(aujourdHui); hier.setDate(aujourdHui.getDate() - 1); // Formatter les dates au format YYYY/MM/DD const dateDebut = formaterDate(hier); // Début d'hier const dateFin = formaterDate(aujourdHui); // Début d'aujourd'hui // Définir les requêtes de recherche const requeteEnvoyes = `in:sent after:${dateDebut} before:${dateFin}`; const requeteRecus = `in:inbox after:${dateDebut} before:${dateFin}`; // Compter les emails envoyés const filsEnvoyes = GmailApp.search(requeteEnvoyes); const nombreEmailsEnvoyes = filsEnvoyes.reduce((total, fil) => total + fil.getMessageCount(), 0); // Compter les emails reçus const filsRecus = GmailApp.search(requeteRecus); const nombreEmailsRecus = filsRecus.reduce((total, fil) => total + fil.getMessageCount(), 0); // Afficher les résultats dans les logs Logger.log(`Total des emails envoyés (Hier) : ${nombreEmailsEnvoyes}`); Logger.log(`Total des emails reçus (Hier) : ${nombreEmailsRecus}`); // Écrire dans Google Sheets const nomFeuille = "Statistiques Emails"; const feuilleDeCalcul = SpreadsheetApp.getActiveSpreadsheet(); let feuille = feuilleDeCalcul.getSheetByName(nomFeuille) || feuilleDeCalcul.insertSheet(nomFeuille); // Ajouter les données à la feuille const derniereLigne = feuille.getLastRow() + 1; feuille.getRange(derniereLigne, 1).setValue(`Hier (${dateDebut})`); feuille.getRange(derniereLigne, 2).setValue(nombreEmailsEnvoyes); feuille.getRange(derniereLigne, 3).setValue(nombreEmailsRecus); Logger.log("Les statistiques des emails d'hier ont été exportées avec succès vers Google Sheets !"); } // Fonction utilitaire pour formater une date au format YYYY/MM/DD function formaterDate(date) { const annee = date.getFullYear(); const mois = String(date.getMonth() + 1).padStart(2, "0"); // Mois indexé à 0 const jour = String(date.getDate()).padStart(2, "0"); return `${annee}/${mois}/${jour}`; }
Explication du code
- Formatage des dates : La fonction formaterDate() génère un format YYYY/MM/DD pour être utilisé dans les requêtes Gmail.
- Recherches Gmail : Les requêtes in:sent et in:inbox combinées avec after: et before: permettent de récupérer tous les messages d’une journée donnée.
- Comptage des emails : La méthode .reduce() additionne le nombre de messages de chaque conversation.
- Sauvegarde dans Google Sheets : Les statistiques sont stockées dans une feuille nommée « Statistiques Emails », ajoutant une ligne chaque jour.
Comment automatiser l’exécution quotidienne ?
Pour que le script fonctionne sans intervention, il suffit de créer un déclencheur Apps Script :
- Ouvrez l’éditeur Apps Script (Extensions > Apps Script).
- Allez dans Déclencheurs (Horloge en barre latérale).
- Cliquez sur Ajouter un déclencheur.
- Sélectionnez compterEmailsDHier comme fonction à exécuter.
- Définissez une exécution quotidienne à une heure fixe.
- Enregistrez et validez les autorisations nécessaires.
Conclusion
Avec ce script, vous disposez d’un outil simple et efficace pour suivre quotidiennement vos échanges emails. Il peut être personnalisé pour inclure d’autres statistiques comme les emails non lus ou les échanges par étiquette.
Avez-vous déjà mis en place un suivi similaire ? N’hésitez pas à partager vos idées et améliorations en commentaire ! 🚀