¿Alguna forma de enviar la respuesta automática de Gmail en ciertos momentos cada semana?

9

Tengo una cuenta de Gmail que solo se controla de lunes a jueves. Me gustaría configurar algo para enviar automáticamente una respuesta enlatada para los correos electrónicos recibidos entre el jueves por la tarde y el lunes por la mañana, informando al remitente que el correo electrónico no se verá hasta el lunes por la mañana y brindando información de contacto de emergencia.

No creo que esto se pueda hacer directamente en Gmail en este momento. (Las respuestas de vacaciones deben activarse y desactivarse manualmente, y los filtros para correo electrónico enlatado no incluyen ninguna opción de fecha / hora). ¿Puedo configurar las respuestas "fuera de la oficina" de Gmail para cada semana recurrente? También sugiere que esto era posible en Gmail, al menos en el momento de esa pregunta.

¿Hay alguna solución o forma de hacer una codificación simple para lograr esto? Tengo experiencia en desarrollo de software, pero no sé qué opciones (si las hay) están disponibles para el público en general para ampliar Gmail.

PurpleVermont
fuente
Mira a Boomerang. Más fácil de usar.
Alex
Por su descripción, realmente no parece hacer lo que pedí
PurpleVermont

Respuestas:

8

Aquí hay un script de aplicaciones que hace esto. Puede hacer clic en este enlace de inicio de secuencias de comandos para abrir el editor de secuencias de comandos en Google Drive. Entonces:

  1. Reemplace el marcador de posición en el editor con el script que se proporciona a continuación.
  2. Vaya a "Recursos> Activadores de este proyecto" y configure un activador para que se ejecute automáticamente cada 5 minutos.

La lógica del guión se explica a continuación.

function autoReply() {
  var interval = 5;    //  if the script runs every 5 minutes; change otherwise
  var date = new Date();
  var day = date.getDay();
  var hour = date.getHours();
  if ([5,6,0].indexOf(day) > -1 || (day == 1 && hour < 8) || (day == 4 && hour >= 17)) {
    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("I am out of office. Your email will not seen until Monday morning.");
    }
  }
}

El script solo hace algo si el día / hora local actual es

  • Viernes, sábado, domingo (días 5,6,0 en la parte [5,6,0].indexOf(day)), o
  • Lunes antes de las 8 a.m. (día 1, hora <8)
  • Jueves después de las 5 pm (día 4, hora> = 17)

Lo que hace es verificar todos los mensajes recibidos en los últimos 5 minutos ( interval en el script) y responde a cada uno con un texto fijo.

Es importante que coincidan los dos intervalos de tiempo: el intervalo en el que se establece el desencadenante y el establecido en el script. De lo contrario, el script no responderá a algunos mensajes o responderá varias veces.

Observaciones

Puede intentar ejecutar esto cada minuto en lugar de cada 5 minutos; pero no estaba seguro de si esto excedería el tiempo de ejecución máximo permitido para las secuencias de comandos durante un día (1 hora de tiempo de ejecución total).

Consideré formas más sofisticadas de esto: al agregar una etiqueta de "respuesta automática", o al almacenar el tiempo de la última ejecución en ScriptProperties . Pero lo anterior hace el trabajo y gana en simplicidad.


fuente
Iba a sugerir algo como ifttt.com, ¡pero esto es mucho mejor!
barrycarter
Gracias por esta respuesta No he tenido oportunidad de jugar con él, pero suponiendo que funcione cuando lo pruebe, aceptaré la respuesta.
PurpleVermont
Tenga en cuenta que los disparadores elemento de menú se ha movido al menú Editar
userSteve
4

¡El script en la respuesta del usuario 79865 es realmente genial! Sin embargo, me di cuenta de que cuando enviaba un mensaje de prueba fuera de mi horario de oficina, seguía respondiéndome cada 5 minutos hasta que volvía a ser mi horario de oficina. Para evitar eso, edité el script ligeramente, agregando una declaración if al bucle for enviando las respuestas:

function autoReply() {
var interval = 5;    //  if the script runs every 5 minutes; change otherwise
  var date = new Date();
  var day = date.getDay();
  var hour = date.getHours();
  if ([5,6,0].indexOf(day) > -1 || (day == 1 && hour < 8) || (day == 4 && hour >= 17)) {
    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++) {
      if (threads[i].isUnread()){
      threads[i].reply("I am out of office. Your email will not seen until Monday morning.");
      threads[i].markRead();
      threads[i].markImportant();
      }
    }
  }
}

El respondedor ahora marcará un hilo como leído una vez que envíe la respuesta, y debería ignorar todos los hilos no leídos. Para hacer un seguimiento de qué correos electrónicos se enviaron mientras estoy fuera de la oficina, el respondedor también marca el hilo como importante, ¡así que todavía sé enviar una respuesta real!

Darcey
fuente