Warm tip: This article is reproduced from serverfault.com, please click

google sheets-一次搜索Gmail线程中多个未读标签的脚本

(google sheets - Script to search for multiple unread labels in Gmail threads at once)

发布于 2020-11-27 11:40:43

我具有以下标签结构

+------------+------------+---------------+
|   label    | sub-label  | sub-sub-label |
+------------+------------+---------------+
| 01-fruit   |            |               |
|            | 01-apples  |               |
|            |            | green         |
|            |            | red           |
|            | 02-oranges |               |
|            |            | red           |
|            |            | orange        |
| 02-veggies |            |               |
|            | 01-peppers |               |
|            |            | green         |
|            |            | red           |
+------------+------------+---------------+

使用的脚本是:

function mail2Sheets() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('newRec'); //get the sheet
  var freshLabel = GmailApp.getUserLabelByName("00-fresh"); // in the end, add this label
  const query = "label:unread" + " label:01-fruit"; 
  var foundThreads = GmailApp.search(query);
  var newReceipts = [];
  for (var i = 0; i < foundThreads.length; i++) {

  +++++++ SOME CODE HERE +++++++

    }
  }
  if(!foundThreads.length) return; //  if there are no unread ones, do nothing.
  sheet.getRange(SpreadsheetApp.getActiveSheet().getLastRow()+1,2,newReceipts.length,newReceipts[0].length).setValues(newReceipts); //write to sheet
  GmailApp.markThreadsRead(foundThreads); // mark "foundThreads" as read
  freshLabel.addToThreads(foundThreads); // add label "00-fresh" to "foundThreads"
  GmailApp.refreshThreads(foundThreads); // refresh "foundThreads" for changes to show
}

我可以成功搜索单个标签,例如: const query = "label:unread" + " label:01-fruit";

还。
虽然我GmailApp.refreshThreads(foundThreads);Execution永远不会完成。
相反,它显示Status Running

在此处输入图片说明

总结

如何在查询中同时搜索多个标签(例如
"label:unread" + " label:00-fruit/01-apples/red"
AND)
"label:unread" + " label:02-veggies/01-peppers/red"

还。如何解决该Status Running问题?

Questioner
marikamitsos
Viewed
11
Tanaike 2020-11-28 07:36:24
  • " "这是一个空格,用作AND运算符。
  • OR{}可以用作OR运算符。

使用以上运算符,你的目标就可以实现。

  • 当你要使用label:unread搜索邮件时label:00-fruit/01-apples/red,请按以下方式使用搜索查询。

    标签:未读标签:00-水果/ 01-苹果/红色

  • 当你要使用label:unreadlabel:00-fruit/01-apples/red搜索邮件时label:02-veggies/01-peppers/red,请按以下方式使用搜索查询。

      label:unread (label:00-fruit/01-apples/red OR label:02-veggies/01-peppers/red)
    
  • 或者

      label:unread {label:00-fruit/01-apples/red label:02-veggies/01-peppers/red}
    

参考: