Google Apps脚本 - GMail到Google表格 - 在线程的.csv附件中获取最旧的未读电子邮件

时间:2018-04-16 16:09:26

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

首先关闭:JavaScript新手。我们非常感谢您提供的任何帮助/指导。

我有一个新的商业案例,其中一个GMail盒子将每天收到4次具有相同主题行的电子邮件,但每次都有一个新的.csv附件。我在GMail中创建了标签,并且它已成功附加到每封电子邮件中。我需要能够使用Apps脚本来处理最旧的未读电子邮件。解析.csv的部分已经过测试/成功/完成。但是,每次运行它时,它都会循环遍历所有文件,然后再次处理它们。

以下是从GMail Box获取信息的当前代码

// GMail Details
var gmailLabel = ('_Projects/ProjectLabel');
var label = GmailApp.getUserLabelByName(gmailLabel);
var unreadCount = label.getUnreadCount();
var gmailThreads = GmailApp.getUserLabelByName(gmailLabel).getThreads();
Logger.log(label.getUnreadCount());
  for (var i = 0; i < gmailThreads.length; i++) {
   Logger.log(gmailThreads[i].getFirstMessageSubject());
  }
}

日志确实显示正确有2个未读线程,并且在记录器中显示主题行。但是,在gmailThreads数组中,我只能看到线程的对象编号。我如何获得属于这些线程的每封电子邮件的对象编号?这将是我首先需要解析.csv附件,然后在循环中标记为读取(或更改标签)的电子邮件。

再次感谢您的期待!

1 个答案:

答案 0 :(得分:0)

要获取给定Gmail主题中第一封邮件的ID,您需要调用getMessages()来检索所有邮件,然后使用[0]访问生成的数组中的第一条邮件:

var firstMessage = thread.getMessages()[0];

然后,您可以使用此GmailMessage执行许多操作,例如检索其ID(.getId())或附件(.getAttachments())。