如何将 Google Apps 脚本应用于已过滤的电子邮件?

How to apply Google Apps Script to filtered emails?

我目前有一个脚本可以自动回复周末发送的消息,检查过去 5 分钟内是否有未读消息,然后回复并标记为已读。

我想知道是否可以只让这个脚本在特定 folder/filter 中查找未读邮件。这样做的原因是我们有很多不同的电子邮件发送到此框,我们不希望自动回复大多数电子邮件,只是一些已被过滤的电子邮件。

如果无法在过滤器中查看脚本,是否可以只回复符合特定条件的邮件?

这是我当前的脚本,运行 每五分钟:

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 ([6,0].indexOf(day) > -1 || (day == 1 && hour < 10) || (day == 5 && hour >= 15)) {
    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("Thank you for reaching CTGINC. Your email is very important to us, one of our customer service experts will respond within the next 24-48 hours. Thank you!");
      threads[i].markRead();
      threads[i].markImportant();
      }
    }
  }
}

Cat,你试过让你的过滤器应用标签然后使用 getLabels() 吗?

要求:

查找标签内的未读电子邮件。


解决方案:

增强您当前的 GmailApp.search() 查询以包含此条件。


示例:

//replace "labelname" with the name of your label
var threads = GmailApp.search('in:labelname is:unread after:' + timeFrom);

解释:

如您在查询中所见,它仅在特定标签内查找在您 var timeFrom.

之前未读和收到的线程

GmailApp.search() 使用与 Gmail 顶部搜索栏相同的搜索运算符。值得一读 here,有很多不同的可能性。