【发布时间】:2021-03-10 04:51:34
【问题描述】:
我有以下标签结构
+------------+------------+---------------+
| 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"
和"label:unread" + " label:02-veggies/01-peppers/red"
还有。 Status Running 问题如何解决?
【问题讨论】:
-
在你的情况下,当你想搜索
label:unread和label:00-fruit/01-apples/red的邮件时,请使用label:unread label:00-fruit/01-apples/red的搜索查询。" "是一个空格,用作AND运算符。当您想搜索label:unread和label: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)的搜索查询。 Ref 但如果我误解了你的问题,我深表歉意。 -
谢谢@Marios。我看过那个链接。它建议启用高级谷歌服务。我一直在寻找一种方法来避免这种情况。知道为什么执行永远不会结束吗?
-
@Tanaike 环境是一个新的常规帐户,只有 77 封电子邮件和 11 条未读消息。我不明白为什么脚本需要这么长时间才能执行(5.289 秒),而且还没有完成。脚本也很简单。如果您愿意,可以查看full script here 和execution times here。没有
refreshThreads命令的(1.749 秒)执行时间。 -
旁注:“状态:正在运行”是不可靠的消息,可能是控制台页面中的错误,而不是实际脚本。经常刷新控制台页面会改变状态。即使没有,我也会完全无视它。
-
@TheMaster。 “旁注:...” 你似乎是correct。我刚刚刷新了页面,它显示
Completed。谢谢你:)
标签: google-apps-script google-sheets gmail gmail-api