微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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]);

}  
    
  }

解决方法

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

如果(主题==“ test4”)

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


参考:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。