我一直在这里搜索SO和谷歌,但我找不到任何有用的东西。
所以当我在下面运行我的代码时,我会在图像上得到结果。
我想从具有特定标签的邮件中的最新/最新 thread
中提取数据。
但是,在我的Gmail
中,我只有"Action"-label
下的3封邮件,我以粗体突出显示。
其他邮件已被删除,因此,它们处于垃圾邮件状态,但仍然可以使用" Action"标签。
我想只显示我"Action"-label
的邮件 - 这意味着我只想要最新的thread
时间/日期,主题行和ID,所以我可以创建一个链接那封邮件。
function myFunction() {
var ss = SpreadsheetApp.getActiveSheet();
var query = "label:action -label:trash -label:action-done -from:me";
var threads = GmailApp.search(query);
for (var i = 0; i < threads.length; i++)
{
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++)
{
var mId = messages[j].getId()
var from = messages[j].getFrom();
var cc = messages[j].getCc();
var time = messages[j].getDate()
var sub = messages[j].getSubject();
ss.appendRow([from, cc, time, sub, 'https://mail.google.com/mail/u/0/#inbox/'+mId])
}
}
}
}
答案 0 :(得分:2)
所以我设法通过在数组中找到最大索引来解决它 我已经对代码进行了评论,因此它可以帮助其他人。谢谢,全部。
function myFunction() {
// Use sheet
var ss = SpreadsheetApp.getActiveSheet();
// Gmail query
var query = "label:support -label:trash -label:support-done -from:me";
// Search in Gmail, bind to array
var threads = GmailApp.search(query);
// Loop through query results
for (var i = 0; i < threads.length; i++)
{
// Get messages in thread, add to array
var messages = threads[i].getMessages();
// Used to find max index in array
var max = messages[0];
var maxIndex = 0;
// Loop through array to find maxIndexD = most recent mail
for (var j = 0; j < messages.length; j++) {
if (messages[j] > max) {
maxIndex = j;
max = messages[j];
}
}
// Find data
var mId = messages[maxIndex].getId() // ID used to create mail link
var from = messages[maxIndex].getFrom();
var cc = messages[maxIndex].getCc();
var time = threads[i].getLastMessageDate()
var sub = messages[maxIndex].getSubject();
// Write data to sheet
ss.appendRow([from, cc, time, sub, 'https://mail.google.com/mail/u/0/#inbox/'+mId])
}
}
答案 1 :(得分:0)
如何在搜索中添加 newer_than:3d ? 您可以在自己的Gmail帐户中测试搜索结果,当它执行您想要的操作时,只需将其粘贴到查询中即可。