Будь-який спосіб надіслати автоматичну відповідь Gmail у визначений час щотижня?


9

У мене є обліковий запис Gmail, який відстежується лише з понеділка по четвер. Я хотів би налаштувати щось, щоб автоматично надсилати консервовану відповідь на електронні листи, отримані між четвергом вдень та вранці в понеділок, повідомляючи відправника про те, що електронний лист не буде показано до ранку в понеділок, та надати контактну інформацію в екстреному порядку.

Я не думаю, що зараз це можна зробити безпосередньо в Gmail. (Відповіді на канікули потрібно вмикати та вимикати вручну, а фільтри для консервованої електронної пошти не містять жодних варіантів дати та часу.) Чи можна встановлювати відповіді Gmail "поза офісом" щотижня? також припускає, що це можливо в Gmail, принаймні на час цього питання.

Чи є якась обробка чи спосіб зробити просте кодування для цього? У мене є розробка програмного забезпечення, але я не знаю, які варіанти (якщо такі є) доступні широкій публіці для розширення Gmail.



Подивіться на Бумеранга. Простіше у використанні.
Олексій

За його описом, схоже, це не те, про що я просив
PurpleVermont,

Відповіді:


8

Ось сценарій програм, який робить це. Ви можете натиснути це посилання для запуску сценаріїв, щоб відкрити редактор сценаріїв на Диску Google. Тоді:

  1. Замініть заповнювач місця в редакторі сценарієм, поданим нижче.
  2. Перейдіть до розділу "Ресурси> Тригери цього проекту" та встановіть тригер для автоматичного запуску кожні 5 хвилин.

Логіка сценарію пояснюється нижче.

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.");
    }
  }
}

Сценарій робить щось, лише якщо поточний місцевий день / час

  • П'ятниця, субота, неділя (5,6,0 дня [5,6,0].indexOf(day));
  • Понеділок до 8 години ранку (день 1, година <8)
  • Четвер після 17:00 (день 4, година> = 17)

Що потрібно зробити, це перевірити всі повідомлення, отримані за останні 5 хвилин ( interval за сценарієм) та відповіді на кожне із консервованим текстом.

Важливо, щоб два часові інтервали відповідали: інтервал, на який встановлений тригер, і той, який встановлений у сценарії. Інакше сценарій або не відповість на деякі повідомлення, або відповість кілька разів.

Зауваження

Ви можете спробувати запустити це щохвилини замість кожні 5 хвилин; але я не був впевнений, чи перевищить це максимальний час виконання сценаріїв за день (загальна тривалість роботи на 1 годину).

Я розглянув більш складні форми цього: із додаванням мітки "автовідповідь" або із збереженням часу останнього запуску в ScriptProperties . Але вищезазначене робить роботу виконаною та перемагає у простоті.


Я збирався запропонувати щось на зразок ifttt.com, але це набагато краще!
barrycarter

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

зауважте, що пункт меню "Тригери" перемістився до меню "Редагувати"
користувачSteve

4

Сценарій у відповіді user79865 дійсно чудовий! Однак я помітив, що коли я надсилав тестове повідомлення поза робочим часом, я відповідав кожні 5 хвилин, поки він знову не став моїм робочим часом. Щоб вирішити цю проблему, я трохи відредагував сценарій, додавши вираз if до циклу, що надсилає відповіді:

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();
      }
    }
  }
}

Тепер відповідь позначить потік як прочитаний, коли він надсилає відповідь, і повинен ігнорувати всі непрочитані теми. Щоб відслідковувати, які електронні листи надсилалися, поки я поза офісом, відповідач також позначає нитку як важливу, тому я все ще знаю, як надіслати справжню відповідь!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.