我一直在 SO 和 Google 上四处寻找,但找不到任何有效的东西。
因此,当我运行下面的代码时,我在图像上得到了结果。
我想从具有特定标签的邮件中的最新/最新线程
中提取数据。
但是,在我的 Gmail
中,我在 "Action"-label
下只有 3 封邮件,并以粗体突出显示。
其他邮件已被删除,因此它们位于垃圾箱中,但仍然具有“操作”标签。
我只想显示我有“Action”标签
的邮件 - 这意味着我只想要最新的线程
时间/日期、主题行作为 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])
}
}
}
}
最佳答案
所以我设法通过找到数组中的最大索引来解决这个问题。
我已经对代码进行了注释,因此可以帮助其他人。谢谢大家。
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])
}
}
关于javascript - Google 脚本 - 将 Gmail 中的数据获取到表格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47417288/