Gmail脚本-标签添加和删除标签

时间:2020-11-12 20:09:35

标签: google-apps-script google-sheets gmail

我已经很接近实现这个目标,但是遇到了一些问题。

  1. 我的addLabel和removeLabel命令正在影响我的所有标签,而不仅是我试图通过识别特定主题行来定位的标签。我如何才能将此更改仅作为我想要的主题行?
  2. 以某种方式,我的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]);

}  
    
  }

1 个答案:

答案 0 :(得分:0)

@Cooper的建议。我不认为您的条件包含了您需要的功能。检查您的第14行:

如果(主题==“ test4”)

您应在条件if之后使用大括号“ {”&“}”,如下面我链接的文档中所述,以包含您希望程序仅在以下情况下执行的所有指令满足条件。


参考: