从Google Apps脚本中排除标签

时间:2015-02-07 21:05:05

标签: google-apps-script

这是我的第一篇文章:)

我正在使用Google Apps脚本跟踪过去7天内未收到回复的电子邮件(基本上是跟踪我的邮件最后一封的电子邮件)。

这是这里的代码:

// This script searches Gmail for conversations where I never received a response
// and puts them in a NoResponse label 

var DAYS_TO_SEARCH = 7; // look only in sent messages from last 7 days, otherwise script takes a while
var SINGLE_MESSAGE_ONLY = false; // exclude multi-message conversations where I sent the last message? 

function label_messages_without_response() {
  var emailAddress = Session.getEffectiveUser().getEmail();
  Logger.log(emailAddress);
  var EMAIL_REGEX = /[a-zA-Z0-9\._\-]+@[a-zA-Z0-9\.\-]+\.[a-z\.A-Z]+/g;
  var label = GmailApp.createLabel("AwaitingResponse");
  var d = new Date();
  d.setDate(d.getDate() - DAYS_TO_SEARCH);
  var dateString = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate();
  threads = GmailApp.search("in:Sent after:" + dateString);
  for (var i = 0; i < threads.length; i++)
  {
    var thread = threads[i];
    if (!SINGLE_MESSAGE_ONLY || thread.getMessageCount() == 1)
    {
      var lastMessage = thread.getMessages()[thread.getMessageCount()-1];
      lastMessageSender = lastMessage.getFrom().match(EMAIL_REGEX)[0];
      if (lastMessageSender == emailAddress)
      {
      thread.addLabel(label);
      Logger.log(lastMessageSender);
      }
    }
  }
}

目前问题是,当脚本运行时,未回复的消息会进入&#34; NoResponse&#34;标签很棒。但是,当我从不需要跟进的电子邮件中删除标签时,当脚本再次运行时,它们会再次恢复。

我的问题是:

是否有办法将标签应用于不需要跟进的邮件,然后将其添加到脚本中,以便脚本知道要排除该标签?< /强>

任何帮助都会很棒:)

由于 艾

1 个答案:

答案 0 :(得分:0)

可能是脚本可以应用两个标签--NoResponse和Processed。您可以手动删除NoResponse标签,但仍然会保留已处理的标签。

过滤器可以修改为:

 threads = GmailApp.search("in:Sent -in:Processed after:" + dateString);