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



首先:JavaScript新手。您能提供的任何帮助/指导将不胜感激。

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

这是从GMail框获取信息的当前代码

// 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附件,然后在循环中标记为已读(或更改标签)的电子邮件。

再次感谢您的观看!

要获取给定 Gmail 线程中第一批邮件的 ID,您需要调用getMessages()来检索所有邮件,然后访问生成的数组中的第一封邮件,[0]如下所示

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

然后你可以用这个GmailMessage做很多事情,比如检索它的ID(.getId())或附件(.getAttachments())。

最新更新