google-apps-script - 如何获取所有附有特定标签的草稿消息

标签 google-apps-script google-sheets google-spreadsheet-api gmail-api

我写了一个脚本,我想在其中提取所有标签为 shc 的草稿消息。

代码:

function getDraftsWithLabel_shc() {
 Logger.clear();
 Logger.log("fn start..");
 var drafts = GmailApp.getDraftMessages(); //getUserLabelByName(ulables[x].getName()).

 var label = GmailApp.getUserLabelByName("shc");
     Logger.log(label);
     var threads = label.getThreads();
     Logger.log("LBL NAME ="+label.getName());
     Logger.log("THREAD ="+threads.length);

 for (var i = 0; i < threads.length; i++) {

       var message=threads[i].getMessages();
       Logger.log(" thread ID = "+threads[i].getId());

       if(message.length<0)
       {
           for(m=0;m<message.length;m++){
              var isD=message[m].isDraft();
              Logger.log("is Draft ="+isD);
              if(isD)
              {
                    Logger.log(message[m].getSubject()+" = "+message[m].getTo()+" = "+message[m].getDate());
              }
           }
       } 
       else 
       {
           Logger.log("No mesage");
       }
 } 
   Logger.log("fn Ends..");

}

在代码中,我试图获取标签名称,然后是相应的线程。然后循环线程并使用 getMessages() 检查当前是否为 isDraft 然后根据条件获取所有其他详细信息。

首先我收不到消息。其次,是否有任何有效的方法可以直接获取具有特定标签的所有 Draft 线程,因为遍历所有线程需要花费太多时间


日志截图:

enter image description here

最佳答案

drafts.list() 现在接受原始查询参数 q 因此您可以简单地指定它来执行您想要的操作。像这样的东西:

q=in:<label>

请参阅 Gmail API 的 Users.drafts: list文档以获取更多详细信息。

关于google-apps-script - 如何获取所有附有特定标签的草稿消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31430199/

相关文章:

google-sheets - 导入范围+替换

google-apps-script - 接受来自用户的多个输入并添加到新行中的某些单元格

google-sheets - 如何通过 sheets API v4 更新 google 电子表格

google-sheets - 如何在没有菜单栏的情况下共享谷歌电子表格?

javascript - e.parameter 中的参数未定义

javascript - 调用函数时下拉菜单选项消失

python - 将 pandas DataFrame 导出到 google sheet 时索引标题丢失

excel - Google Script - 将工作表转换为 XLSX

google-apps-script - 无效的主题名称不匹配

javascript - 如何使用 Google 脚本获取特定工作表的链接?