Могу ли я отправлять Gmail ответы «вне офиса» за каждую повторяющуюся неделю?


11

Я работаю только с понедельника по среду. Я хотел бы настроить его так, чтобы, когда клиенты пишут мне в эти дни каждую неделю, они получают дружеское напоминание. Как я могу это сделать? Кажется, мне придется делать это вручную каждую неделю, судя по всему.


Вопрос не показывает никаких исследований. Пожалуйста, проверьте, как спросить .
Рубен

Ответы:


6

Я адаптировал свой ответ к подобному вопросу в вашей ситуации. Этот скрипт приложения ответит, если текущим днем ​​является четверг (4), пятница (5), суббота (6) или воскресенье (0). Набор дней может быть скорректирован, как указано ниже.

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);
    }
  }
}

5

Я думаю, что вы правы; Я вижу только способ добавить дату начала и дополнительную дату окончания. Вы не сможете автоматизировать это только с помощью Gmail. Вам понадобится какой-нибудь внешний инструмент, если предположить, что кто-то создал такую ​​вещь. Однако кто-то, обладающий навыками работы со скриптом Google Apps, сможет что-то создать.

Что бы ни стоило, Outlook также не позволяет вам делать подобные вещи.

В лучшем случае, с Gmail, вы можете использовать автоответчик отпуска, чтобы отправить сообщение кому угодно в любой день. Это довольно умно в том, что оно не отправит сообщение несколько раз, если вы получите несколько сообщений от одного человека.


1

Я написал обновленную версию по сравнению с user79865, добавьте ярлык для ответного письма вместо использования времени, будет более точным.

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);
    }
  }
}

0

Я объединил 2 сценария, чтобы получить версию с ярлыками linjunhalida, но теперь я могу выбирать день, а не вводить даты, как в сценарии 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);
    }
  }
}

0

Через некоторое время вы можете захотеть взглянуть на несколько других ошибок и улучшений:

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("myemail@gmail.com") < 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 office@example.com. 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]);
      }
    }
  }
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.