Gmail 脚本 - 标签添加和删除标签
Gmail Script - Labels Adding and Removing Labels
我快要完成我想做的事情了,但是有几个问题。
- 我的 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 行:
if (subject == "test4")
您应该在 if
条件后使用大括号“{”和“}”,如下面的文档 I link 所述,以包含您希望程序执行的任何指令 只有满足条件才执行
参考:
我快要完成我想做的事情了,但是有几个问题。
- 我的 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 行:
if (subject == "test4")
您应该在 if
条件后使用大括号“{”和“}”,如下面的文档 I link 所述,以包含您希望程序执行的任何指令 只有满足条件才执行
参考: