I am using a script I found online to extract emails by label in my inbox (gmail). There are about 1300 emails labeled "COMPLETED." It works as intended but it always stops after it reaches 500 rows, or it has extracted 500 labeled emails from my gmail. I am using the business version of gmail so I don't think there should be a size limit but possibly there is and i haven't found any details.
I have posted the code below.
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])
}
}
Any help would be greatly appreciated. Thank you. Here is a copy of my sheet and how its set up. https://docs.google.com/spreadsheets/d/1GWgAAU---DMOaIRiOeTktbQTOgIvvK-IdG6szpPkHpA/edit?usp=sharing