function onOpen(e) { SpreadsheetApp.getUi() .createMenu('SBS Mailer') .addItem('Send out emails', 'sendEmails') .addItem('Remaining quota', 'remainingQuota') .addToUi(); } function remainingQuota() { var emailQuotaRemaining = MailApp.getRemainingDailyQuota(); Logger.log("Remaining email quota: " + emailQuotaRemaining); var ss = SpreadsheetApp.openById("1sxOrLJM0Tvd-21vu2zfVxSOSd2lL-hKmYOppQJGDtT8"); var sheet = ss.getSheetByName('emails_list'); var quota = ss.getRange("F2").setValue(emailQuotaRemaining); } function sendEmails() { var ss = SpreadsheetApp.openById("1sxOrLJM0Tvd-21vu2zfVxSOSd2lL-hKmYOppQJGDtT8"); var sheet = ss.getSheetByName('emails_list'); var subject = ss.getRange("E2").getValue(); var count_range = sheet.getRange(2, 1, 1500).getValues(); var flat = count_range.reduce(function(acc, row){ return acc.concat(row.filter(function(x) { return x != ""; })); }, []); var startRow=2; var numRows=flat.length; var dataRange=sheet.getRange(startRow, 1, numRows, 3); //changed to getDisplayValues var data=dataRange.getDisplayValues(); //changed to for loop for (var i=0;i<data.length;i++) { var row=data[i]; var emailAddress=row[0]; var message=HtmlService.createHtmlOutputFromFile('mail_template').getContent(); var options = {} options.htmlBody = message; MailApp.sendEmail(emailAddress, subject, '', options); } }