Google应用程序脚本-Gmail-通过过滤器返回消息(而不是线程)

人气:365 发布:2022-10-16 标签: gmail gmail-api google-apps-script

问题描述

我有分配了不同标签的特定传入电子邮件,并且我在设置中禁用了线程处理(对话视图)。 我可以在返回我想要的特定消息的Web应用程序中输入搜索,

例如: "Label:Customer01 Label:Report"

然而,对API使用完全相同的筛选器会返回该线程和那里的所有消息--因为Google认为它们是同一对话的一部分(即使在现实世界中它们不是),这意味着我的脚本除了处理它应该处理的消息之外,还处理它不应该处理的消息。

例如: Var线程=GmailApp.earch(GSearchExp);//其中gSearchExp是前面提到的筛选器

是否有方法可以搜索并返回邮件,而不是邮件?

推荐答案

Gmail API怎么样?我认为通过使用Gmail API,可以检索到带有特定标签的消息。示例脚本如下所示。

要使用此功能,请在高级Google服务和API控制台启用Gmail API。您可以在here了解如何操作。

示例脚本:

var userId = "me";
var query = "label:customer01 label:report";
var res = Gmail.Users.Messages.list(userId, {q: query});
var ids = res.messages.map(function(e){return e.id});
Logger.log(ids) // Message IDs with the specific labels.

注意:

在此示例脚本中,检索具有特定标签的消息ID。例如,如果要检索邮件正文,请使用检索到的邮件ID进行检索。 请根据您的环境修改var userId = "me"

参考:

Users.messages: list 如果我误解了你的问题,请告诉我。我想修改它。

512