Google apps script 使用Google应用程序脚本在X天后从Gmail电子邮件中删除标签

Google apps script 使用Google应用程序脚本在X天后从Gmail电子邮件中删除标签,google-apps-script,gmail,Google Apps Script,Gmail,我创建了一个GoogleApps脚本code.gs,如下所示,用于从每个早于Xdays并标记为Y的线程中删除Gmail标签 function archiveYThreads() { // Every thread, older than two days, and labeled "Unread Feeds". var threads = GmailApp.search('label:"Unread Feeds" older_than:2d'); for (var i = 0; i <

我创建了一个GoogleApps脚本
code.gs
,如下所示,用于从每个早于
X
days并标记为
Y
的线程中删除Gmail标签

function archiveYThreads() {
// Every thread, older than two days, and labeled "Unread Feeds".
var threads = GmailApp.search('label:"Unread Feeds" older_than:2d');
  for (var i = 0; i < threads.length; i++) {
    threads[i].removeLabel("Unread Feeds");
}
}
函数archiveYThreads(){
//每个线程,超过两天,并标记为“未读提要”。
var threads=GmailApp.search('label:“未读提要”早于:2d');
对于(var i=0;i
根据,存在函数
removeLabel
。或者,我找到了一些使用
deleteLabel
的源代码。但是,在设置了基于时间的触发器后,我发现这两个函数都不存在:


有人能帮我检测一下函数为什么不工作吗?

您必须提供一个Gmillabel类型的对象作为removeLabel()方法的参数。试试这个片段

function archiveYThreads() {
 var label = GmailApp.getUserLabelByName("Unread Feeds");
 var threads = GmailApp.search('label:"Unread Feeds" older_than:2d');
  for (var i = 0; i < threads.length; i++) {
    threads[i].removeLabel(label);
  }
}
函数archiveYThreads(){
var label=GmailApp.getUserLabelByName(“未读提要”);
var threads=GmailApp.search('label:“未读提要”早于:2d');
对于(var i=0;i
当提供
gmailabel
对象作为参数时,它确实起作用。谢谢你的帮助@或者,您也可以使用
gmailabel.removeFromThreads(threads)
函数,在获得threads数组后,去掉for循环。在上面的代码中,只需将for循环替换为
标签。removeFromThreads(threads)
即可。如果您有一个非常大的脚本数组,它将工作得更快,并完全减少脚本超时的可能性threads@Chikitulfo谢谢你的建议。也许Amit Agarwal可以更新他的解决方案?