Puis-je définir des réponses Gmail «Absent du bureau» pour chaque semaine récurrente?

10

Je ne travaille que du lundi au mercredi. Je voudrais le configurer afin que lorsque les clients m'envoient un e-mail ces jours-ci chaque semaine, ils reçoivent un rappel amical. Comment puis-je faire ceci? Il semble que je devrais le faire manuellement chaque semaine à en juger.

Kyla Donkersgoed
la source
La question ne montre aucun effort de recherche. Veuillez vérifier comment demander .
Rubén

Réponses:

6

J'ai adapté ma réponse à une question similaire à votre situation. Ce script d'applications répondra si le jour en cours est un jeudi (4), un vendredi (5), un samedi (6) ou un dimanche (0). L'ensemble des jours peut être ajusté comme indiqué ci-dessous.

function autoReply() {
  var interval = 5;          //  if the script runs every 5 minutes; change otherwise
  var daysOff = [4,5,6,0];   // 1=Mo, 2=Tu, 3=We, 4=Th, 5=Fr, 6=Sa, 0=Su
  var message = "This is my day off.";
  var date = new Date();
  var day = date.getDay();
  if (daysOff.indexOf(day) > -1) {
    var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval;
    var threads = GmailApp.search('is:inbox after:' + timeFrom);
    for (var i = 0; i < threads.length; i++) {
      threads[i].reply(message);
    }
  }
}
user79865
la source
4

Je pense que vous avez raison; Je ne vois qu'un moyen d'ajouter une date de début et une date de fin facultative. Vous ne pourrez pas automatiser cela uniquement avec Gmail. Vous auriez besoin d'un outil externe, en supposant que quelqu'un a créé une telle chose. Cependant, une personne compétente avec Google Apps Script pourrait être en mesure de créer quelque chose.

Pour ce que ça vaut, Outlook ne vous permet pas non plus de faire ce genre de chose.

Au mieux, avec Gmail, vous pouvez utiliser le répondeur automatique de vacances pour envoyer un message à n'importe qui n'importe quel jour. C'est assez intelligent car il n'enverra pas le message plusieurs fois si vous recevez plusieurs messages d'une même personne.

ale
la source
1

J'ai écrit une version mise à jour par rapport à celle de user79865, ajouter une étiquette pour le courrier électronique répondu au lieu d'utiliser le temps, sera plus précis.

function autoReply() {
  var scheduled_date = [
    '2016-12-19', '2016-12-20',
  ];
  var auto_reply = "I am out of office. Your email will not seen until Monday morning.";

  var now = new Date();
  var today = now.toISOString().slice(0, 10); // today format: '2017-01-01'

  var label = GmailApp.getUserLabelByName('auto-replyed') || GmailApp.createLabel('auto-replyed');

  // today is the scheduled date
  if (scheduled_date.indexOf(today) >= 0) { 
    // get all email inbox, unread, without label auto-replyed
    var threads = GmailApp.search('is:unread is:inbox -{label:auto-replyed}');
    for (var i = 0; i < threads.length; i++) {
      var thread = threads[i]
      // reply the email and add auto-replyed label
      thread.reply(auto_reply);
      thread.addLabel(label);
    }
  }
}
linjunhalida
la source
0

J'ai combiné les 2 scripts pour obtenir une version avec les étiquettes de linjunhalida, mais pouvoir choisir un jour plutôt que d'entrer des dates, comme dans le script de user79865:

function autoReply() {
  var scheduled_date = [
    '2019-09-20', '2019-09-27',
  ];
  var auto_reply = "I am out of office today. I'll get back to you as soon as possible next week.";

  var now = new Date();
  var today = now.toISOString().slice(0, 10); // today format: '2017-01-01'

  var label = GmailApp.getUserLabelByName('auto-replyed') || GmailApp.createLabel('auto-replyed');

  // today is the scheduled date
  if (scheduled_date.indexOf(today) >= 0) { 
    // get all email inbox, unread, without label auto-replyed
    var threads = GmailApp.search('is:unread is:inbox -{label:auto-replyed}');
    for (var i = 0; i < threads.length; i++) {
      var thread = threads[i]
      // reply the email and add auto-replyed label
      thread.reply(auto_reply);
      thread.addLabel(label);
    }
  }
}
Soraya
la source
0

Après avoir utilisé cela un moment, il y a quelques autres pièges et améliorations que vous voudrez peut-être examiner:

function autoReply() {
  var interval = 5;        //  if the script runs every 5 minutes; change otherwise
  var daysOff = [1,5,6,0];   // 1=Mo, 2=Tu, 3=We, 4=Th, 5=Fr, 6=Sa, 0=Su
  var date = new Date();
  var day = date.getDay();
  var label = GmailApp.getUserLabelByName("autoresponded");
  if (daysOff.indexOf(day) > -1) {
    var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval;
    var threads = GmailApp.search('is:inbox !label:autoresponded after:' + timeFrom);
    for (var i = 0; i < threads.length; i++) {
      var message = threads[i].getMessages()[0];
      if (message.getFrom().indexOf("[email protected]") < 0 && message.getFrom().indexOf("no-repl") < 0 && message.getFrom().indexOf("bounce") < 0 && message.getFrom().indexOf("spam") < 0) {
        threads[i].reply("", {
          htmlBody: "<p>Thank you for your message. I am not in the office today. If you have urgent questions you can email [email protected]. If you have other urgent enquiries you can call the office on 1800 999 002.</p><p>Best regards,<br>Name</p>"
        });
        label.addToThread(threads[i]);
      }
    }
  }
}
Jacob
la source