Czy mogę ustawić w Gmailu odpowiedzi „poza biurem” na każdy kolejny cykl?

11

Pracuję tylko od poniedziałku do środy. Chciałbym to skonfigurować, aby klienci otrzymywali mi e-maile w te dni każdego tygodnia, otrzymując przyjazne przypomnienie. W jaki sposób mogę to zrobić? Wygląda na to, że musiałbym to robić ręcznie co tydzień.

Kyla Donkersgo
źródło
Pytanie nie pokazuje żadnego wysiłku badawczego. Proszę sprawdzić Jak pytać .
Rubén

Odpowiedzi:

6

Dostosowałem odpowiedź na podobne pytanie do twojej sytuacji. Ten skrypt aplikacji odpowie, jeśli bieżący dzień to czwartek (4), piątek (5), sobota (6) lub niedziela (0). Zestaw dni można dostosować, jak pokazano poniżej.

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);
    }
  }
}
użytkownik79865
źródło
5

Myślę, że masz rację; Widzę tylko sposób na dodanie daty początkowej i opcjonalnej daty końcowej. Nie będziesz w stanie zautomatyzować tego samego Gmaila. Potrzebujesz zewnętrznego narzędzia, zakładając, że ktoś coś takiego stworzył. Ktoś zręczny w Google Apps Script może jednak być w stanie coś stworzyć.

Jeśli chodzi o to, co jest warte, Outlook też nie pozwala ci robić tego rodzaju rzeczy.

W najlepszym przypadku za pomocą Gmaila możesz użyć automatycznej odpowiedzi na wakacje, aby wysłać wiadomość do dowolnej osoby w dowolnym dniu. Jest całkiem sprytny, ponieważ nie wysyła wiadomości wiele razy, jeśli otrzymasz kilka wiadomości od jednej osoby.

ale
źródło
1

Napisałem zaktualizowaną wersję w porównaniu do user79865, dodaję etykietę dla odpowiedzi na e-maila zamiast zużywać czas, będzie bardziej dokładny.

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
źródło
0

Połączyłem 2 skrypty, aby uzyskać wersję z etykietami linjunhalida, ale mogłem wybrać dzień zamiast wprowadzać daty, jak w skrypcie 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
źródło
0

Po dłuższym użyciu jest kilka innych poprawek i ulepszeń, na które warto spojrzeć:

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]);
      }
    }
  }
}
Jakub
źródło