Posso impostare le risposte "fuori sede" di Gmail per ogni settimana ricorrente?


11

Lavoro solo dal lunedì al mercoledì. Vorrei impostarlo in modo che quando i clienti mi inviano un'e-mail in questi giorni ogni settimana, ricevano un promemoria amichevole. Come posso fare questo? Sembra che dovrei farlo manualmente ogni settimana dall'aspetto.


La domanda non mostra alcuno sforzo di ricerca. Si prega di verificare Come chiedere .
Rubén,

Risposte:


6

Ho adattato la mia risposta a una domanda simile alla tua situazione. Questo script di app risponderà se il giorno corrente è uno di giovedì (4), venerdì (5), sabato (6) o domenica (0). L'insieme di giorni può essere regolato come indicato di seguito.

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

Penso che tu abbia ragione; Vedo solo un modo per aggiungere una data di inizio e una data di fine opzionale. Non sarai in grado di automatizzare questo con Gmail da solo. Avresti bisogno di uno strumento esterno, supponendo che qualcuno abbia creato una cosa del genere. Qualcuno con abilità con Google Apps Script potrebbe essere in grado di creare qualcosa, però.

Per quello che vale, Outlook non ti consente nemmeno di fare questo genere di cose.

Nella migliore delle ipotesi, con Gmail, è possibile utilizzare il risponditore automatico delle vacanze per inviare un messaggio a chiunque in qualsiasi giorno. È piuttosto intelligente in quanto non invierà il messaggio più volte se ricevi più messaggi da una persona.


1

Ho scritto una versione aggiornata rispetto a user79865, aggiungi un'etichetta per l'e-mail con risposta invece di usare il tempo, sarà più accurata.

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

Ho combinato i 2 script per ottenere una versione con le etichette di linjunhalida, ma essere in grado di scegliere un giorno anziché inserire le date, come nello script di 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

Dopo averlo usato per un po ', ci sono alcuni altri aspetti e miglioramenti che potresti voler esaminare:

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]);
      }
    }
  }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.