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);
}
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter