【问题标题】:Google gmail script time auto replyGoogle gmail 脚本时间自动回复
【发布时间】:2016-12-21 15:55:29
【问题描述】:

早上好,

我希望在正常办公时间以外的任何时候(美国东部标准时间 M-F 8a-4p EST)向我发送电子邮件时自动回复。

我已经知道如何在周六和周日执行此操作,但不知道如何将其与时间结合起来。下面是我现在使用的。

感谢您的帮助!

function autoReply() {
  var interval = 5;          //  if the script runs every 5 minutes; change otherwise
  var daysOff = [6,0];   // 1=Mo, 2=Tu, 3=We, 4=Th, 5=Fr, 6=Sa, 0=Su
  var message = "Thank you for your email! I am currently away from the office for the weekend spending time with my family. I will be back in the office Monday morning at 8:00 am EST.  My office hours are Monday - Friday 8:00 am - 4:00 pm EDT. I monitor email periodically over weekends for emergencies.  I look forward to assisting you when I am back in the office.  Thank you!"
  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);
    }
  }
}

【问题讨论】:

    标签: google-apps-script gmail


    【解决方案1】:

    你必须这样使用getHours()方法

    var d = new Date();
    var n = d.getHours();
    if (n<8 || n>16){ 
          // "out of office";
    }
    else{
          //regular
    }
    

    【讨论】:

    • var hour = date.getHours(); if (wkend.indexOf(day) > -1 || (day == 5 && hour >= 16)) { var timeFrom = Math.floor(date.valueOf()/1000) - 60 * 间隔; var threads = GmailApp.search('is:inbox after:' + timeFrom); for (var i = 0; i = 16) { var timeFrom = Math.floor(date.valueOf()/1000) - 60 * 间隔; var threads = GmailApp.search('is:inbox after:' + timeFrom); for (var i = 0; i
    • 请解释一下你的意思
    • 他指导了如何将您的代码变成完整的答案。我稍微升级了一下,放到stackoverflow.com/a/68088730/4829915
    【解决方案2】:

    我已将问题的初始代码与 Eugene's 的修改版本结合起来:

        function autoReply() {
          var interval = 1;          //  if the script runs every X minutes
          var daysOff = [6,0];   // 1=Mo, 2=Tu, 3=We, 4=Th, 5=Fr, 6=Sa, 0=Su
          var workingHours = [9,17]; // 0-24
          var message = "Thank you for your email! \n\
          I am currently OOO and will be back in regular office hours (though I monitor email periodically for emergencies). \n\Looking forward to assisting you when I am back in the office. Thank you for your understanding!"
          var date = new Date();
          var day = date.getDay();
          var hour = date.getHours();
          if (daysOff.indexOf(day) > -1 || n<workingHours[0] || n>workingHours[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);
          }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-12
      • 2021-09-28
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 2019-07-02
      相关资源
      最近更新 更多