Чи можу я задати відповіді 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 Script може щось створити.

Оскільки це варте, Outlook також не дозволяє вам робити такі речі.

У кращому випадку, за допомогою Gmail, ви можете використовувати автоматичний відповідь відпустки, щоб надіслати повідомлення кому-небудь у будь-який день. Він досить розумний тим, що не надсилатиме повідомлення кілька разів, якщо ви отримуєте кілька повідомлень від однієї людини.


1

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

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

Я поєднав два сценарії, щоб отримати версію з мітками 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.