Posso definir as respostas de "ausência do escritório" do Gmail para todas as semanas recorrentes?

10

Eu só trabalho de segunda a quarta-feira. Gostaria de configurá-lo para que, quando os clientes me enviem um e-mail nesses dias todas as semanas, eles recebam um lembrete amigável. Como posso fazer isso? Parece que eu teria que fazê-lo manualmente toda semana, pelo que parece.

Kyla Donkersgoed
fonte
A pergunta não mostra nenhum esforço de pesquisa. Por favor, confira Como perguntar .
Rubén

Respostas:

6

Adaptei minha resposta a uma pergunta semelhante à sua situação. O Script do Google Apps responderá se o dia atual for quinta-feira (4), sexta-feira (5), sábado (6) ou domingo (0). O conjunto de dias pode ser ajustado conforme indicado abaixo.

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
fonte
4

Eu acho que você está correto; Só vejo uma maneira de adicionar uma data de início e uma data de término opcional. Você não poderá automatizar isso apenas com o Gmail. Você precisaria de alguma ferramenta externa, supondo que alguém tenha criado uma coisa dessas. Alguém habilidoso com o Script do Google Apps pode ser capaz de criar algo.

Pelo que vale, o Outlook também não permite que você faça esse tipo de coisa.

Na melhor das hipóteses, com o Gmail, você pode usar a resposta automática de férias para enviar uma mensagem para qualquer pessoa em qualquer dia. É bastante inteligente, pois não enviará a mensagem várias vezes se você receber várias mensagens de uma pessoa.

cerveja
fonte
1

Escrevi uma versão atualizada, comparada com a do user79865, adicione etiqueta para o email respondido em vez de usar o tempo, será mais precisa.

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
fonte
0

Combinei os 2 scripts para obter uma versão com os rótulos de linjunhalida, mas posso escolher um dia em vez de inserir datas, como no 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
fonte
0

Depois de usar isso por um tempo, existem algumas outras dicas e melhorias que você pode querer considerar:

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
fonte