在非工作时间将自动回复的电子邮件标记为特定标签

Mark auto-replied emails a certain label during out of work hours

目前我正在使用以下代码,它工作正常但我想知道我是否可以标记由特定标签自动回复的电子邮件,以便我可以检查我何时 return上班?

  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 ([4,5,6,0].indexOf(day) > -1 || (day == 1 && hour < 9) || (day == 3 && hour >= 17)) {
    var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval;
    var threads = GmailApp.search('is:inbox after:' + timeFrom);
    var files = DriveApp.getRootFolder().getFilesByName('autoreply.html');
    var htmlbody;
    while (files.hasNext()) {
      var file = files.next();
      htmlbody = file.getBlob().getDataAsString('utf8');      
    }
    for (var i = 0; i < threads.length; i++) {
      if (threads[i].isUnread()){
      threads[i].reply("", {
          htmlBody: htmlbody
        });
      threads[i].markRead();
      threads[i].markImportant();
      }
    }
  }
}

到目前为止,我只能得到 threads[i].markImportant 工作,但 threads[i].markStarred 或其他自定义标签不会。

你需要使用方法starMessages(messages)

样本:

for (var i = 0; i < threads.length; i++) {
      if (threads[i].isUnread()){
      threads[i].reply("", {
          htmlBody: htmlbody
        });
      GmailApp.starMessages(threads[i].getMessages());
      }
    }