Google apps script 使用Google Apps脚本搜索/替换特定消息(而不是整个线程)中的标签

Google apps script 使用Google Apps脚本搜索/替换特定消息(而不是整个线程)中的标签,google-apps-script,gmail,Google Apps Script,Gmail,我在Gmail中工作,会话视图关闭,我需要用“Oldlabel”搜索特定消息,我只想用Google脚本将这些特定消息的标签更改为“Newlabel” 我现在只能设法找到消息的标签名称,并获取整个线程的所有消息,即使这些消息不包含此标签。因此,它们也将被重命名为“NewLabel”,这是不需要的 这是我到现在为止的代码 var oldlabel = GmailApp.getUserLabelByName("Oldlabel"); var newlabel = GmailApp.getUserLab

我在Gmail中工作,会话视图关闭,我需要用“Oldlabel”搜索特定消息,我只想用Google脚本将这些特定消息的标签更改为“Newlabel”

我现在只能设法找到消息的标签名称,并获取整个线程的所有消息,即使这些消息不包含此标签。因此,它们也将被重命名为“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);
  }
var oldlabel=GmailApp.getUserLabelByName(“oldlabel”);
var newlabel=GmailApp.getUserLabelByName(“newlabel”);
var threads=GmailApp.search(“标签:Oldlabel”)
对于(var i=0;i
请在此澄清。无论会话视图是打开还是关闭,或者您是否知道消息的
id
s,您都无法操作单个消息的标签,因为类没有与标签相关的方法。只有类具有
getLabels()
。类还有
addToThread()
addToThreads()
等,但它没有与消息相关的方法。如果某些东西不在官方文件中,它就不存在


所以我向你求婚,你用了。我还没有亲自测试过,但它看起来像在工作。请自己试一试。

您的代码和问题在哪里?我现在用在Sofarchek之前的代码重新编写了我的问题。这和你的问题完全一样。我不确定这是否是解决方案。我并不担心我可以在特定消息中添加或删除标签,但我需要知道我要更改的消息的消息id。我会重写我原来的问题,让它更清楚不幸的是,这不是我要找的。我已经做了另一个工作,但这也不是完美的,但我现在能找到最好的。毫无疑问,Gmail和线程多年来都是令人头痛的问题。谢谢你的建议。