我正在尝试设置我的第一个Google脚本。它应该从符合我的搜索条件的电子邮件集中删除标签,但是当我运行脚本时,我收到此错误:
Cannot retrieve (line 9, file "Code")
我的代码:
function ArchiveEmails() {
var misc_reps = GmailApp.search("from:(reports@example.com) \"Source: misc_reports\" \"The file was successfully processed\"");
var imp_tms_processing = GmailApp.getUserLabelByName('imp-tms-processing');
for (var i=0; i<misc_reps.length; i++) {
var misc_rep = misc_reps[i];
var id_string = misc_rep.getId(); //use to confirm specific email found in debugging
misc_rep.removeLabel(imp_tms_processing); // line 9
}
}
我不知道从哪里开始;我找不到关于这个问题的任何文件。
答案 0 :(得分:4)
这意味着Gmail无法找到该标签。您会认为此行会发生错误:
var imp_tms_processing = GmailApp.getUserLabelByName('imp-tms-processing');
但由于某些原因,在您真正尝试对标签执行某些操作之前,它不会引发错误。
登录Gmail帐户并确保您的标签存在。如果您的标签嵌套在父标签下,请使用以下表单:
GmailApp.getUserLabelByName("parent/child");
答案 1 :(得分:2)
替换标签中的空格的破折号对于搜索条件是必需的,但此函数不需要getUserLabelByName。我花了几天时间试图使用这个特定功能而没有运气。一旦我删除了破折号并使用了实际的标签名称,它就可以正常工作。