是否可以在每周的特定时间发送Gmail自动回复?


9

我有一个Gmail帐户,该帐户仅在星期一至星期四受到监控。我想进行一些设置,以自动发送在星期四下午到星期一上午之间收到的电子邮件的罐头答复,通知发送者直到星期一早上才看到该电子邮件,并提供紧急联系信息。

我认为目前无法直接在Gmail中完成此操作。(需要手动打开和关闭空缺的回复,并且罐装电子邮件的过滤器不包含任何日期/时间选项。)是否可以将Gmail设置为“不在办公室”每周重复?还表明,至少在提出该问题时,这在Gmail中是可行的。

有什么解决方法或方法可以执行一些简单的编码来完成此操作吗? 我有软件开发背景,但是我不知道普通大众可以使用哪些(如果有)扩展Gmail的选项。



看回旋镖。易于使用。
亚历克斯

通过它的描述,它似乎并没有真正做到我所要求的
PurpleVermont

Answers:


8

这是一个执行此操作的Apps脚本。您可以单击此开始脚本链接以在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)
  • 星期四下午5点之后(第4天,小时> = 17)

它的作用是检查最近5分钟(interval 在脚本中)收到的所有消息,并用罐装文本答复每个消息。

重要的是,两个时间间隔必须匹配:设置触发器的时间间隔和脚本中的一个时间间隔。否则,脚本将无法回复某些消息,或者会回复多次。

备注

您可以尝试每分钟运行一次,而不是每5分钟运行一次。但我不确定这是否会超过一天脚本的最大运行时间(总运行时间1小时)。

我考虑了更复杂的形式:添加标签“自动回复”,或将上次运行时间存储在ScriptProperties中。但是以上内容可以完成工作,并且在简单中胜出。


我本来建议像ifttt.com这样的东西,但这更好!
barrycarter '16

感谢您的回答。我没有机会使用它,但是假设尝试时它可以工作,那么我会接受答案。
PurpleVermont

请注意,“触发器”菜单项已移至“编辑”菜单
userSteve18年

4

user79865的答案中的脚本确实很棒!但是,我确实注意到,当我在办公时间以外发送测试消息时,我会每隔5分钟回复一次自己,直到再次成为办公时间。为了解决该问题,我对脚本进行了一些编辑,在发送响应的for循环中添加了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();
      }
    }
  }
}

现在,响应者在发送答复后将其标记为已读线程,并且应忽略所有未读线程。为了跟踪我不在办公室时发送的电子邮件,响应者还将该主题标记为重要,因此我仍然知道发送真实答复!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.