如何解决Gmail脚本-标签添加和删除标签
我已经很接近实现这个目标,但是遇到了一些问题。
- 我的addLabel和removeLabel命令正在影响我的所有标签,而不仅是我试图通过识别特定主题行来定位的标签。我如何才能将此更改仅作为我想要的主题行?
- 以某种方式,我的Process1函数运行的次数超过了它应识别的电子邮件数量(即,如果有两封“邮件”,它将在我的电子表格中产生三项)
任何帮助或清理工作将不胜感激!
谢谢
function getemails() {
var label = GmailApp.getUserLabelByName("Flagged");
var Nlabel = GmailApp.getUserLabelByName("Logged");
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
var messages=threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
var message=messages[j];
var subject = message.getSubject();
if(subject=="test4")
threads[i].removeLabel(label);
threads[i].addLabel(Nlabel);
process1(message);
}
}
function process1(message) {
var body =message.getPlainBody();
var label = GmailApp.getUserLabelByName("Flagged");
var id = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var ss = SpreadsheetApp.openById([id]);
var sheet = ss.getActiveSheet();
sheet.appendRow([body]);
}
}
解决方法
@Cooper的建议。我不认为您的条件包含了您需要的功能。检查您的第14行:
如果(主题==“ test4”)
您应在条件if
之后使用大括号“ {”&“}”,如下面我链接的文档中所述,以包含您希望程序仅在以下情况下执行的所有指令满足条件。
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。