如何一次获取多封邮件的标签?

时间:2019-07-12 08:24:01

标签: google-oauth gmail-api

对于消息或线程ID的列表,我想抓住它们的标签,而不必为它们单独调用API。

这种情况的用例是,我已经将所有消息都捕获到一个标签中,并且我需要对没有在列表中具有标签的任何消息进行处理。 “忽略的”标签,而无需为每个单独的消息进行API调用。我猜我也可以进行某种搜索,例如“ in:label not:(in:x或in:y或in:z)”,但我不确定如何使用REST API进行搜索。

(以前,我使用https://mail.google.com/范围来获取对IMAP的原始访问权限,但是随着该范围的逐步淘汰,我正努力使用REST API进行相同的操作)

1 个答案:

答案 0 :(得分:2)

我认为您无法使用Gmail API来实现此功能,因为获取标签(GET)的功能需要每个线程的ID,因此您需要为每封邮件调用API。 / p>

但是,您对Gmail搜索的看法是正确的。您必须使用Appscripts中的GmailApp通过这种方式进行操作:

function getNonlabeled() {
   var threads = GmailApp.search("has:nouserlabels"); //You can put any Gmail search parameter here

   for  (var i = 0; i < threads.length; i++){
   Logger.log(threads[i].getId());
   }

}