Fermer
Astuce

Automatisation de Gmail : 5 scripts utiles pour automatiser le webmail de Google

Ne vous êtes-vous jamais laissé déborder par vos e-mails ? À tel point que vous vous êtes vite rendu compte que vous rendre sur votre webmail était devenu une tâche bien plus importante que de prendre un café ou encore d’aller au toilette. À tel que maintenant avec les notifications qui s’affichent sur votre écran, vous passez toute la journée à naviguer entre votre fenêtre de travail et votre boîte mail !

Mais, au bout d’un moment il faut dire stop ! Gmail, est par lui-même, déjà un client de messagerie très puissant. Avec l’aide de filtre, vous pouvez même mettre en place une certaine automatisation afin de mieux organiser votre boîte de réception.

Toutefois, pour un utilisateur qui est enclin à passer quasiment tout son temps sur sa boîte de réception, la mise en place de filtres n’est pas suffisante. Mais, voici cinq petits scripts que j’ai pu récupérer sur la toile, que vous pouvez utiliser pour automatiser davantage votre Gmail et ainsi passer plus de temps là où vous êtes doué, c’est-à-dire pas à rédiger des mails – enfin je l’espère pour vous !

Suppression automatique des e-mails après X nombre de jours

Très souvent, après avoir lu le message, nous allez tout naturellement laisser celui-ci dans votre boîte de réception, indépendamment de savoir s’il est utile ou pas. Alors que Google vous donne des tonnes d’espace pour stocker vos e-mails, vous pourriez encore vouloir nettoyer votre boîte de réception et vous débarrasser de ces tonnes d’e-mails inutiles. Le script suivant peut vérifier les e-mails ayant le libellé “Supprime moi”, et les supprimer après “x” nombre de jours.

Pour ce faire, et comme pour la suite des astuces ci-dessous, allez sur Google Scripts, et créez un projet vide – assurez-vous que vous êtes connecté à votre compte Google.

Projet sur Google Scripts

Collez le script suivant et enregistrez-le.

function auto_delete_mails() {  
  var label = GmailApp.getUserLabelByName("Supprime moi");  
  if(label == null){
    GmailApp.createLabel('Supprime moi');
  }
  else{
    var delayDays = 2 // Entrez le nombre de jour que vous voulez   
    var maxDate = new Date(); 
    maxDate.setDate(maxDate.getDate()-delayDays);    
    var threads = label.getThreads();  
    for (var i = 0; i < threads.length; i++) {  
      if (threads[i].getLastMessageDate()<maxDate){  
        threads[i].moveToTrash();
      } 
    } 
  }
}

Vous pouvez modifier le nombre de jours après la variable delayDays avant que les e-mails ne soient supprimés de votre boîte de réception. Ensuite, il vous reste à définir un déclencheur. Pour ce faire, allez dans “Ressources -> Tous vos déclencheurs -> Ajouter s’en un maintenant” pour l’exécuter tous les jours.

Lancer un déclencheur

Une fois activé, il va créer un label “Supprime moi” dans votre compte Gmail. Tout ce que vous avez à faire est de taguer les e-mails indésirables avec ce libellé et ils seront supprimés après la date d’expiration.

Faites revenir un ancien e-mail

Parfois, après avoir lu un e-mail, vous souhaitez qu’elle retourne dans votre boîte de réception après quelques jours. Avec le Google Script suivant, vous pouvez le faire comme le rapporte le blog de Gmail :

var MARK_UNREAD = true;
var ADD_UNSNOOZED_LABEL = false;
 
function getLabelName(i) {
  return "Snooze/Snooze " + i + " days";
}
 
function setup() {
  // Create the labels we’ll need for snoozing
  GmailApp.createLabel("Snooze");
  for (var i = 1; i <= 7; ++i) {
    GmailApp.createLabel(getLabelName(i));
  }
  if (ADD_UNSNOOZED_LABEL) {
    GmailApp.createLabel("Unsnoozed");
  }
}
 
function moveSnoozes() {
  var oldLabel, newLabel, page;
  for (var i = 1; i <= 7; ++i) {
    newLabel = oldLabel;
    oldLabel = GmailApp.getUserLabelByName(getLabelName(i));
    page = null;
    // Get threads in "pages" of 100 at a time
    while(!page || page.length == 100) {
      page = oldLabel.getThreads(0, 100);
      if (page.length > 0) {
        if (newLabel) {
          // Move the threads into "today’s" label
          newLabel.addToThreads(page);
        } else {
          // Unless it’s time to unsnooze it
          GmailApp.moveThreadsToInbox(page);
          if (MARK_UNREAD) {
            GmailApp.markThreadsUnread(page);
          }
          if (ADD_UNSNOOZED_LABEL) {
            GmailApp.getUserLabelByName("Unsnoozed")
              .addToThreads(page);
          }          
        }     
        // Move the threads out of "yesterday’s" label
        oldLabel.removeFromThreads(page);
      }  
    }
  }
}

Ensuite, enregistrer et exécuter la fonction “Setup”. Cela va ajouter plusieurs nouveaux libellés à votre Gmail, comme “Snooze pendant 2 jours”, “Snooze pendant 7 jours”, etc… Enfin, il suffit d’ajouter un élément déclencheur pour lancer “moveSnoozes” tous les jours. Maintenant, les e-mails tagués “Snooze” seront de retour dans votre boîte de réception avec le statut non lu après le nombre de jours écoulés.

Envoyer un SMS des e-mails importants

Ce script Google va faire usage de la fonctionnalité SMS de l’agenda Google pour vous envoyer des SMS pour les messages importants. Comme précédemment, créez le script suivant avec le code :

function Gmail_send_sms(){
  var label = GmailApp.getUserLabelByName("Envoyer SMS");  
  if(label == null){
    GmailApp.createLabel('Envoyer SMS');
  }
  else{
    var threads = label.getThreads();  
    var now = new Date().getTime();
    for (var i = 0; i < threads.length; i++) {  
      var message = threads[i].getMessages()[0];
      var from = message.getFrom();
      var subject = message.getSubject();
      CalendarApp.createEvent(subject, new Date(now+60000), new Date(now+60000), {location: from}).addSmsReminder(0);
    }
    label.removeFromThreads(threads);
  }
}

Ensuite, sauvegardez et définissez un déclencheur pour qu’il fonctionne toutes les 5 minutes. Enfin, vous devez définir un filtre pour ajouter le libellé “Envoyer SMS” à tous les e-mails entrants importants. Le script va scanner votre boîte de réception toutes les 5 minutes et quand il détecte un e-mail avec ce libellé, il va créer un événement immédiat dans Google Agenda, qui déclenche alors l’envoi du SMS.

Planifiez l’envoie d’un e-mail à une date ultérieure

Vous souhaitez planifier des e-mails à envoyer à une date ultérieure ? Gmail Delay Send est un Google Script qui peut réaliser cette tâche pour vous !

Allez sur ce lien et lancez l’installation. Une fois que vous avez autorisé le script à accéder à votre compte Gmail, vous serez redirigé vers une autre page où vous pouvez configurer le script.

Enregistrer un e-mail en PDF dans Google Drive

Si vous avez un e-mail que vous souhaitez archiver dans Google Drive, vous pouvez utiliser le Google Script suivant pour l’enregistrer au format PDF dans votre compte Google Drive. Le script enregistre tous les messages d’un fil de discussion comme un fichier PDF dans votre Drive. S’il dispose de plusieurs pièces jointes, il va créer un dossier et stocker les messages et les pièces jointes au sein de ce dernier.

Créez un nouveau Google Script avec le code suivant :

function save_Gmail_as_PDF(){
  var label = GmailApp.getUserLabelByName("Enregistrer en PDF");  
  if(label == null){
    GmailApp.createLabel('Enregistrer en PDF');
  }
  else{
    var threads = label.getThreads();  
    for (var i = 0; i < threads.length; i++) {  
      var messages = threads[i].getMessages();  
      var message = messages[0];
      var body    = message.getBody();
      var subject = message.getSubject();
      var attachments  = message.getAttachments();
      for(var j = 1;j<messages.length;j++){
        body += messages[j].getBody();
        var temp_attach = messages[j].getAttachments();
        if(temp_attach.length>0){
          for(var k =0;k<temp_attach.length;k++){
            attachments.push(temp_attach[k]);
          }
        }
      } 
      // Create an HTML File from the Message Body
      var bodydochtml = DocsList.createFile(subject+'.html', body, "text/html")
      var bodyId=bodydochtml.getId();
 
      // Convert the HTML to PDF
      var bodydocpdf = bodydochtml.getAs('application/pdf');
      if(attachments.length > 0){
        DocsList.createFolder(subject);
        var folder = DocsList.getFolder(subject);
        for (var j = 0; j < attachments.length; j++) {
          folder.createFile(attachments[j]);
          Utilities.sleep(1000);
        }
        folder.createFile(bodydocpdf);
      }
      else{
        DocsList.createFile(bodydocpdf);
      }      
      DocsList.getFileById(bodyId).setTrashed(true);
      label.removeFromThread(threads[i]);
    }
  }  
}

Sauvegardez et définissez un déclencheur pour qu’il fonctionne à intervalle régulier. Vous souhaitez enregistrer un e-mail et ses pièces jointes dans Google Drive ? Pour ce faire il suffit de lui mettre le libellé “Enregistrer en PDF”.

Conclusion

Avec Google Script, il y a des tonnes de choses que vous pouvez faire pour votre compte Gmail, Google Drive, Agenda et divers Google Apps. Si vous avez d’autres scripts sous la main permettant d’améliorer votre productivité, n’hésitez pas à les partager dans les commentaires.

Mots-clé : Googlescript
Yohann Poiron

L’auteur Yohann Poiron

J’ai fondé le BlogNT en 2010. Autodidacte en matière de développement de sites en PHP, j’ai toujours poussé ma curiosité sur les sujets et les actualités du Web. Je suis actuellement engagé en tant qu’architecte interopérabilité.