我正在使用下面的谷歌应用程序脚本从收件箱中的特定邮件地址搜索最近的电子邮件。此电子邮件没有标签,此脚本试图查看所有邮件。如何最小化对电子邮件的搜索并提取最近的电子邮件。
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();
}
}
}
最佳答案
这个示例脚本怎么样?
修改点:
- 对于
var threads = GmailApp.search(searchterm);
,threads[0]
是最新的线程。 - 当
From
只是特定的邮件地址时,它会检索邮件。 - 当使用
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/