Exporter ses emails en fichiers EML

Une question trouvée ce matin sur les forums m'a donné une idée d'un script. En effet, la personne souhaitait trouver le moyen d'exporter des emails présents dans Gmail vers un dossier du Drive au format EML.



Le script


Pour cela, je vous propose d'ouvrir l'application script : https://script.google.com/home puis de cliquer sur + Nouveau projet pour obtenir une page vierge et copier le script ci dessous.

 function exporterGmailVersEML() {
  var conversations = GmailApp.search("label:ExportEML");  
  GmailApp.markThreadsRead(conversations);
  Logger.log(conversations) ;  
  
  var nouveauDossier = DriveApp.createFolder("Dossier EML").getId();

  for (var i=0; i< conversations.length; i++) {
    var messages = conversations[i].getMessages();

      for (var j=0; j< messages.length; j++) {

        var monID = messages[j].getId();
        var msg = GmailApp.getMessageById(monID);
        var msgBrut = msg.getRawContent();

        var msgBlob = Utilities.newBlob(msgBrut, 'message/rfc822', 'exemple.eml');
        
        var fichier = DriveApp.getFolderById(nouveauDossier).createFile(msgBlob);
        var nomFichier = GmailApp.getMessageById(monID).getSubject();
        
        fichier.setName(nomFichier);
      }
  }
}

Le fonctionnement


Avant de lancer le script, deux valeurs en rouge sont à modifier :

  • le label : libellé où le script va chercher les mails dans Gmail
  • le nom du dossier dans Drive

Ensuite, il n'y a plus qu'à lancer le script.

Commentaires