javascript - 从特定邮件地址获取最近的电子邮件

标签 javascript google-apps-script

我正在使用下面的谷歌应用程序脚本从收件箱中的特定邮件地址搜索最近的电子邮件。此电子邮件没有标签,此脚本试图查看所有邮件。如何最小化对电子邮件的搜索并提取最近的电子邮件。

function myFunction() 
{  
  var searchterm = 'myemail@mydomain.com';
  var threads = GmailApp.search(searchterm);
  var messages = GmailApp.getMessagesForThreads(threads);

  for (var i = 0; i < threads.length; i++) 
  {
      for (var j = 0; j < messages[i].length; j++)
      {
        var mailFrom = messages[i][j].getFrom();
      }
  }
}

最佳答案

这个示例脚本怎么样?

修改点:

  1. 对于 var threads = GmailApp.search(searchterm);threads[0] 是最新的线程。
  2. From 只是特定的邮件地址时,它会检索邮件。
  3. 当使用forEach()循环处理thread[0]时,下层元素是较新的。

反射(reflect)这些的脚本如下。

脚本:

var mailAddress = "myemail@mydomain.com";
var mailFrom;
var thread = GmailApp.search("from:" + mailAddress);
thread[0].getMessages().forEach(function(message) {
  var f = message.getFrom();
  var d = message.getDate();
  if (!~f.indexOf(mailAddress)) return;
  mailFrom = [f, d];
});

结果:

[name <myemail@mydomain.com>, Sat Jan 1 12:34:56 GMT 2017]

当测量处理时间时,我确认此脚本为您的示例脚本带来了大约 30% 的改进。虽然我不知道这是否是最好的,但如果这对你有用,我很高兴。

如果我误解了你的问题,我很抱歉。

关于javascript - 从特定邮件地址获取最近的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45556844/

相关文章:

javascript - 用于导出和替换 csv 文件的 Google App 脚本

google-apps-script - 如何使用日历的时区设置日期对象的时区

javascript - 如何使用正则表达式从 javascript 中的日期字符串中删除时间戳

javascript - 重新排列数组数组的元素

javascript - mongod 进程运行时 Gulp watch 任务抛出 EBUSY 错误

google-apps-script - 如何通过应用程序脚本在谷歌仪表图表上使用自定义颜色

javascript - Google Data Studio 连接器和应用脚本

testing - Google App Script 中的 Gmail 服务每执行四次操作就会运行缓慢。为什么?

javascript - 隐藏源代码

javascript - 如何在 Angular js 中加载时隐藏元素