我正在使用在网上找到的脚本来按收件箱(gmail)中的标签提取电子邮件。大约有1300封电子邮件标记为“已完成”。 它可以按预期工作,但在达到500行后始终会停止,或者它已从我的gmail提取了500个带有标签的电子邮件。我使用的是gmail商业版本,因此我不认为应该有大小限制,但是可能存在限制,而且我还没有找到任何详细信息。
我在下面发布了代码。
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('Emails')
var item = menu.addItem('Extract Emails','myFunction')
var item = menu.addItem('Delete Emails','clearRange')
.addToUi();
}
function myFunction() {
// Use sheet
var ss = SpreadsheetApp.getActiveSheet();
// Gmail query
var query = "label:COMPLETED";
// 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 = messages[maxIndex].getDate()
var sub = messages[maxIndex].getSubject();
// Write data to sheet
ss.appendRow([from, cc, time, sub, 'https://mail.google.com/mail/u/0/#inbox/'+mId])
}
}
任何帮助将不胜感激。谢谢。 这是我的工作表的副本以及它的设置方式。 https://docs.google.com/spreadsheets/d/1GWgAAU---DMOaIRiOeTktbQTOgIvvK-IdG6szpPkHpA/edit?usp=sharing