从特定邮件地址

时间:2017-08-07 22:56:07

标签: 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();
      }
  }
}

2 个答案:

答案 0 :(得分:1)

这个示例脚本怎么样?

修改要点:

  1. 对于var threads = GmailApp.search(searchterm);threads[0]是最新的主题。
  2. From只是特定邮件地址时,它会检索邮件。
  3. 使用thread[0]循环处理forEach()时,较低的元素是较新的元素。
  4. 脚本反映如下。

    脚本:

    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%的改进。虽然我不知道这是否是最好的,但如果这对你有用,我很高兴。

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

答案 1 :(得分:1)

您可以使用以下搜索字词:

var searchterm = "from: myemail@mydomain.com newer:"+parseInt(date/1000);

其中date是javascript日期变量的时间值。例如,当前日期可以计算为:

date = new Date().getTime();

此searchterm将返回比上述日期更新的电子邮件主题