如何在Gmail API中仅获取所有发件人的最新电子邮件

时间:2019-08-24 00:03:12

标签: google-api gmail-api

我正在开发一个应用,该应用需要获取收件箱中所有发件人的gmail最新邮件列表。例如,我有20封来自“ foo@bar.com”的电子邮件,但我只想获取此电子邮件发送的最后一封电子邮件。我找不到此任务的谷歌提供的任何查询或过滤器。我尝试提取收件箱中的所有电子邮件,然后在后端处理数据,但是当有大量电子邮件被提取时,这是一项繁重的工作

谢谢

1 个答案:

答案 0 :(得分:0)

尝试一下:

function lastEmail(){
  var userId = Session.getActiveUser().getEmail();
  var userEmail = "USER_ID";
  var optionalArgs = {
    q:userEmail
  }

  // Threads[0] will get the most recently updated thread.
  var mail = Gmail.Users.Threads.list(userId, optionalArgs).threads[0];
  Logger.log(mail);

  var message = GmailApp.getThreadById(mail.id).getMessages();
  Logger.log(message[message.length-1].getBody());
}

我试用了API,并找到了一种执行所需操作的方法。您需要enable the Gmail Google Advanced Service才能正常工作。您可以轻松地从工作表中检索userEmail,并使用所需的范围和SpreadsheetApp。最后一件事是要获取线程的最新消息(最新消息),您可以在message[message.length-1]获得它。

相关问题