Exporter vos e-mails Gmail vers Google Docs avec Google Apps Script
Dans le quotidien numérique, nous accumulons souvent des centaines voire des milliers d’e-mails. Il peut être utile de les exporter pour les archiver, les analyser ou les imprimer. Dans cet article, je vous explique comment automatiser l’exportation de vos e-mails échangés avec un contact spécifique vers un document Google Docs, en utilisant Google Apps Script.
Pourquoi exporter vos e-mails ?
Exporter vos e-mails présente plusieurs avantages :
- Archivage et sauvegarde : Conservez une copie de vos échanges importants.
- Analyse et documentation : Facilitez la recherche d’informations ou la création de rapports.
- Impression simplifiée : Regroupez plusieurs messages dans un seul document pour une lecture ou une impression plus aisée.
Pré-requis
Pour suivre ce tutoriel, vous aurez besoin :
- D’un compte Google.
- D’un accès à Google Apps Script
- De quelques notions de base en JavaScript.
Le principe du script
L’idée est de :
- Rechercher dans Gmail tous les e-mails envoyés ou reçus par un contact spécifique.
- Parcourir les discussions et extraire les informations clés de chaque message (date, expéditeur, destinataire, objet et contenu).
- Insérer ces informations dans un document Google Docs en créant des séparations claires pour chaque e-mail.
Le code en détail
Voici le script complet commenté en français :
function exporterEmailsVersDocs() { const adresseContact = "contact@exemple.com"; const requete = `from:${adresseContact} OR to:${adresseContact}`; const discussions = GmailApp.search(requete); // Création d'un nouveau document Google Docs const doc = DocumentApp.create(`Export des emails avec ${adresseContact}`); const corps = doc.getBody(); // Ajout du titre principal et de la date d'exportation const titre = corps.appendParagraph(`Export des emails avec ${adresseContact}`); titre.setHeading(DocumentApp.ParagraphHeading.TITLE); const dateExport = corps.appendParagraph(`Date d'export : ${new Date().toLocaleString()}`); dateExport.setItalic(true); corps.appendHorizontalRule(); // Parcours des discussions et de chaque message discussions.forEach(discussion => { discussion.getMessages().forEach(message => { // Ajout d'un titre pour l'objet du message const objet = message.getSubject(); const titreEmail = corps.appendParagraph(`Objet : ${objet}`); titreEmail.setHeading(DocumentApp.ParagraphHeading.HEADING2); // Création d'un tableau pour afficher les informations clés du message const infos = [ ["Date", message.getDate().toLocaleString()], ["De", message.getFrom()], ["À", message.getTo()] ]; const tableauInfos = corps.appendTable(infos); // Mise en forme : la première colonne en gras tableauInfos.getRow(0).getCell(0).editAsText().setBold(true); tableauInfos.getRow(1).getCell(0).editAsText().setBold(true); tableauInfos.getRow(2).getCell(0).editAsText().setBold(true); // Récupération du contenu en texte brut (sans HTML) const contenuTexte = message.getPlainBody(); const paragrapheContenu = corps.appendParagraph(contenuTexte); paragrapheContenu.setFontFamily("Arial").setFontSize(11); // Séparation claire entre les e-mails avec un saut de page corps.appendPageBreak(); }); }); doc.saveAndClose(); Logger.log(`Document créé : ${doc.getUrl()}`); }
Explications détaillées
- Recherche des e-mails :
La constante adresseContact définit l’adresse du contact dont vous souhaitez exporter les e-mails. La variable requete permet de créer une recherche qui sélectionne tous les messages envoyés ou reçus par ce contact. Ensuite, GmailApp.search(requete) récupère l’ensemble des discussions correspondantes.
- Création du document :
DocumentApp.create() crée un nouveau document Google Docs, et getBody() permet de récupérer le corps du document où nous allons insérer le contenu des e-mails.
- Parcours des discussions et extraction des informations :
En utilisant forEach, nous parcourons chaque discussion et chaque message au sein de la discussion. Pour chaque message, nous ajoutons des informations (date, expéditeur, destinataire, objet) et le corps du message après avoir retiré les balises HTML pour obtenir un texte clair.
- Mise en forme :
Des séparations visuelles (lignes de tirets) et des sauts de page sont ajoutés pour rendre le document final lisible et bien structuré.
Comment utiliser ce script ?
- Rendez-vous sur Google Apps Script et créez un nouveau projet.
- Copiez-collez le code ci-dessus dans l’éditeur.
- Remplacez « contact@exemple.com » par l’adresse e-mail du contact concerné.
- Enregistrez le projet, puis cliquez sur Exécuter pour lancer la fonction exporterEmailsVersDocs.
- Lors de la première exécution, autorisez le script à accéder à votre compte Gmail et à créer des documents.
- Une fois le script exécuté, consultez le Logger pour obtenir le lien vers le document Google Docs créé.
Astuces supplémentaires
- Personnalisation :
Vous pouvez adapter le script pour filtrer vos e-mails sur une période donnée en ajoutant des paramètres supplémentaires dans la requête (par exemple, after:2020/01/01 pour ne récupérer que les messages postérieurs à une date précise).
- Optimisation :
Pour de grands volumes d’e-mails, pensez à ajouter des contrôles ou à diviser l’export en plusieurs parties pour éviter des dépassements de quotas.
- Mise en forme avancée :
Google Apps Script permet également d’insérer des images, de formater le texte ou d’ajouter des liens dans votre document, vous offrant ainsi une grande flexibilité pour personnaliser votre export.
Conclusion
L’automatisation avec Google Apps Script permet de gagner un temps précieux en exportant automatiquement vos e-mails vers un document Google Docs. Ce script, rédigé avec les bonnes pratiques d’ES6+, est facilement personnalisable et s’adapte à divers besoins d’archivage ou d’analyse. N’hésitez pas à expérimenter et à l’adapter pour en tirer le meilleur parti dans votre gestion quotidienne des e-mails !