当我想给一个线程一个用户定义的标签时,没有问题。但是当我想给出系统标签" Inbox"。
时,问题就开始了label = GmailApp.getUserLabelByName("Inbox")
thread.addLabel(label)
我收到此错误:
无效的参数:标签(第2行,文件'代码')
答案 0 :(得分:2)
在Gmail中,“收件箱”是一个系统标签,与用户创建的标签不同,无法通过GmailThread类的getLabels()方法访问。
请注意,如果您登录Gmail帐户并在搜索栏中输入“label:inbox”,它将返回应用了可视标签“inbox”的主题列表。
出于安全原因,您只能使用Google围绕它们的方法与“收件箱”或“垃圾邮件”等系统标签进行互动。在以下示例中,结果与将“收件箱”标签应用于线程相同:
var thread = GmailApp.getThreadById("yourId");
if(!thread.isInInbox()) {
thread.moveToInbox(); //apply the inbox label
}
您还可以使用GmailApp类的search()方法过滤收件箱邮件:
var threads = GmailApp.search("label: inbox from: contact@example.com");
希望这有帮助!
答案 1 :(得分:0)
GmailLabel
是“用户创建的标签”$compile service,因此我猜您无法添加类似“收件箱”的系统标签。即使在Gmail网页用户界面中,我们也无法应用收件箱标签。