使用Google Apps脚本搜索/替换特定消息(而非整个帖子)中的标签

时间:2017-04-02 08:39:42

标签: google-apps-script gmail

我在Gmail中使用会话视图关闭,我需要使用“旧标签”搜索特定邮件,我只想将这些特定邮件的标签更改为“新标签”。

我现在只能设法找到消息的标签名称并获取整个线程的所有消息,即使这些单独的消息不包含此标签。因此,它们也将被重命名为“NewLabel”,这是不必要的。

这是我现在的代码。

var oldlabel = GmailApp.getUserLabelByName("Oldlabel");
var newlabel = GmailApp.getUserLabelByName("Newlabel");
var threads = GmailApp.search("label:Oldlabel")
  for (var i=0; i< threads.length; i++) {
    threads[i].removeLabel(oldlabel);
    threads[i].addLabel(newlabel);
  }

1 个答案:

答案 0 :(得分:0)

在此澄清。无论对话视图是开启还是关闭,或者您是否知道id消息,Gmail Service无法操纵单个消息的标签,因为{{ 3}}类没有与标签相关的方法。只有GmailMessage班级有getLabels()GmailThread类还有addToThread()addToThreads()等,但它没有与消息相关的方法。如果官方文档中没有某些内容,则该内容不存在。

所以我建议你GmailLabel使用another answer。我自己没有测试过,但看起来像正在工作。请自己尝试一下。