我正在使用以下谷歌应用脚本从我的收件箱中的特定邮件地址搜索最近的电子邮件。此电子邮件没有标签,此脚本正在尝试查看所有邮件。如何最小化搜索电子邮件并删除最近的电子邮件。
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();
}
}
}
答案 0 :(得分:1)
这个示例脚本怎么样?
var threads = GmailApp.search(searchterm);
,threads[0]
是最新的主题。From
只是特定邮件地址时,它会检索邮件。thread[0]
循环处理forEach()
时,较低的元素是较新的元素。脚本反映如下。
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将返回比上述日期更新的电子邮件主题