¿Puedo configurar las respuestas "fuera de la oficina" de Gmail para cada semana recurrente?

10

Solo trabajo de lunes a miércoles. Me gustaría configurarlo para que cuando los clientes me envíen correos electrónicos en estos días cada semana, reciban un recordatorio amistoso. ¿Cómo puedo hacer esto? Parece que tendría que hacerlo manualmente todas las semanas por lo que parece.

Kyla Donkersgoed
fuente
La pregunta no muestra ningún esfuerzo de investigación. Por favor, consulte Cómo preguntar .
Rubén

Respuestas:

6

Adapte mi respuesta a una pregunta similar a su situación. Este script de aplicaciones responderá si el día actual es jueves (4), viernes (5), sábado (6) o domingo (0). El conjunto de días se puede ajustar como se indica a continuación.

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

Creo que tienes razón; Solo veo una manera de agregar una fecha de inicio y una fecha de finalización opcional. No podrá automatizar esto solo con Gmail. Necesitaría alguna herramienta externa, suponiendo que alguien haya creado tal cosa. Sin embargo, alguien con habilidad con Google Apps Script podría crear algo.

Por lo que vale, Outlook tampoco te permite hacer este tipo de cosas.

En el mejor de los casos, con Gmail, puede usar el contestador automático de vacaciones para enviar un mensaje a cualquier persona en cualquier día. Es bastante inteligente ya que no enviará el mensaje varias veces si recibe varios mensajes de una persona.

cerveza inglesa
fuente
1

Escribí una versión actualizada en comparación con la del usuario 79865, agregue una etiqueta para el correo electrónico respondido en lugar de usar el tiempo, será más preciso.

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

Combiné los 2 scripts para obtener una versión con las etiquetas de linjunhalida, pero puedo elegir un día en lugar de ingresar fechas, como en el 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
fuente
0

Después de usar esto por un tiempo, hay algunas otras trampas y mejoras que es posible que desee 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
fuente