Importer vos emails Gmail dans Google Sheets
Ce script Google Apps Script vous permet d’importer automatiquement vos emails Gmail dans une feuille de calcul Google Sheets. Vous pourrez ainsi conserver un historique de vos messages, les trier et les analyser plus facilement.
Fonctionnalités
- Récupération des emails de la boîte de réception Gmail
- Affichage de l’expéditeur, du destinataire, du sujet et de la date du message
- Gestion du nombre de messages dans une conversation
- Possibilité de filtrer et de trier les données dans Google Sheets
Mise en place
- Copiez le code ci-dessous dans un nouveau script Google Apps Script.
- Remplacez les valeurs suivantes :
nomFeuille
: le nom de la feuille de calcul Google Sheets où les emails seront importés.
- Exécutez la fonction
getGmailEmails
depuis le menu personnalisé « Mon Menu ».
Utilisation
- Cliquez sur l’option de menu « Obtenir Email » dans le menu « Mon Menu ».
- Les emails seront importés dans la feuille de calcul Google Sheets spécifiée.
Avantages
- Gain de temps: Automatisation de la récupération des emails.
- Centralisation des données: Stockage des emails dans un format structuré.
- Analyse: Possibilité de filtrer et de trier les données pour obtenir des insights.
Améliorations possibles
- Ajout de colonnes: Vous pouvez ajouter des colonnes pour afficher d’autres informations, comme le corps du message ou les pièces jointes.
- Filtrage avancé: Vous pouvez créer des filtres pour afficher uniquement les emails répondant à certains critères.
- Envoi d’emails: Vous pouvez utiliser Google Apps Script pour envoyer des emails à partir de Google Sheets.
Conclusion
Ce script est un outil puissant pour importer et organiser vos emails Gmail dans Google Sheets. Vous pouvez l’utiliser pour améliorer votre productivité et votre gestion des emails.
Pour aller plus loin
- Consultez la documentation de Google Apps Script pour apprendre à créer des scripts plus complets.
- Vous pouvez trouver de nombreux exemples de scripts sur internet.
- N’hésitez pas à me contacter si vous avez des questions ou si vous souhaitez des modifications du script.
/*******************************************************************
* Script Google Apps Script pour obtenir et enregistrer des emails *
* dans une feuille de calcul Google Sheets. *
* *
* Auteur: L'atelier informatique *
* Date: 02/2024 *
*******************************************************************/
var ajoutEntete = false; // Variable pour vérifier si l'entête a déjà été ajoutée
var nomFeuille = "Feuille 1";
//====================== Début de la fonction du menu personnalisé ==========
function onOpen(e) {
SpreadsheetApp.getUi()
.createMenu('Mon Menu')
.addItem('Obtenir Email', 'getGmailEmails')
.addToUi();
}
//=================== Début de la fonction pour obtenir les emails ========
function getGmailEmails(){
var classeur = SpreadsheetApp.getActiveSpreadsheet();
var feuille = classeur.getSheetByName(nomFeuille);
feuille.clear();
var conversations = GmailApp.getInboxThreads();
for(var i = 0; i < conversations.length; i++){
var messages = conversations[i].getMessages();
var nombreDeMessages = conversations[i].getMessageCount();
for (var j = 0; j < messages.length; j++){
var message = messages[j];
if (message.isInInbox()){
extraireDetails(message, nombreDeMessages, feuille);
}
}
}
// Fixation de la première ligne
feuille.setFrozenRows(1);
}
//====================== Début de la fonction d'extraction ==============
function extraireDetails(message, msgCount, feuille){
var fuseauHoraire = SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone();
var dateMessage = Utilities.formatDate(message.getDate(), fuseauHoraire, "dd-MM-yyyy");
var sujetTexte = message.getSubject();
var deEnvoye = message.getFrom();
var aEnvoyer = message.getTo();
// Ajout de l'entête seulement si elle n'a pas déjà été ajoutée
if (!ajoutEntete) {
// Ajout de l'entête en gras
feuille.appendRow(["Date", "Nombre de messages", "De", "À", "Sujet"]);
feuille.getRange("A1:E1").setFontWeight("bold");
ajoutEntete = true; // Marquer que l'entête a été ajoutée
}
feuille.appendRow([dateMessage, msgCount, deEnvoye, aEnvoyer, sujetTexte]);
}