I am currently receiving data through an RSS feed into my spreadsheet. I have a script (below) which I am hoping to run on a time trigger (every minute) to check the data and then in turn send an email out if the data meets certain criteria.
Problem: After the first email is sent out, I want to create a system to check (timestamp?) within the script if an email for that particular row of data has already been sent. Is this the best way to do this? How do I do it? Script is below.
function sendEmail(email_address, email_subject, email_message) {
MailApp.sendEmail(email_address, email_subject, email_message);
}
function test_sendEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.setActiveCell('A2');
var criterion_cutoff = 5;
var i = 0;
var addr;
var subj;
var msg;
do {
addr = cell.offset(i,0).getValue();
subj = cell.offset(i,1).getValue();
msg = cell.offset(i,2).getValue();
criterion = cell.offset(i,3).getValue();
if(criterion < criterion_cutoff) {
sendEmail(addr,subj,msg);
Browser.msgBox('Sending email to: ' + addr);
}
i++;
} while( cell.offset(i, 0).getValue().length > 0 )
Browser.msgBox('Done!');
}
If I’m understanding your question correctly, you want some way of marking which rows in the spreadsheet that you’ve already sent emails for, so that you don’t send duplicates. If so, then this tutorial shows one way of doing that: https://developers.google.com/apps-script/articles/sending_emails#section2