add code for managing emails
add email addresses to list, auto-archive, and send summary email
This commit is contained in:
parent
6534a959cb
commit
6c1de067f6
96
noneroll.gs
Normal file
96
noneroll.gs
Normal file
@ -0,0 +1,96 @@
|
||||
//run every hour to archive any new email from email in sheet
|
||||
function arch() {
|
||||
var sheet = SpreadsheetApp.openById('sheetID');
|
||||
var range = sheet.getDataRange();
|
||||
var values = range.getValues();
|
||||
values = [].concat.apply([], values);
|
||||
//Logger.log(values)
|
||||
var threads = GmailApp.getInboxThreads();
|
||||
var label = GmailApp.getUserLabelByName('zbulk')
|
||||
for (var i = 0; i < threads.length; i++) {
|
||||
if(threads[i].isInInbox()){
|
||||
var msg = threads[i].getMessages()[0];
|
||||
var email = msg.getFrom().replace(/^.+<([^>]+)>$/, "$1");
|
||||
if(values.indexOf(email) > -1){
|
||||
//Logger.log('here?')
|
||||
threads[i].addLabel(label);
|
||||
threads[i].markRead();
|
||||
threads[i].moveToArchive();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//run every day to add any emails added to zbulk folder to sheet
|
||||
function addEmail() {
|
||||
var sheet = SpreadsheetApp.openById('sheetID');
|
||||
var range = sheet.getDataRange();
|
||||
var values = range.getValues();
|
||||
values = [].concat.apply([], values);
|
||||
var label = GmailApp.getUserLabelByName('zbulk')
|
||||
var threads = label.getThreads();
|
||||
for (var i = 0; i < threads.length; i++) {
|
||||
var msg = threads[i].getMessages()[0];
|
||||
var email = msg.getFrom().replace(/^.+<([^>]+)>$/, "$1")
|
||||
if(values.indexOf(email) < 0){
|
||||
sheet.appendRow([email])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getEmails() {
|
||||
var delayDays = 2
|
||||
var maxDate = new Date();
|
||||
maxDate.setDate(maxDate.getDate() - delayDays);
|
||||
var label = GmailApp.getUserLabelByName("zbulk");
|
||||
var threads = label.getThreads();
|
||||
var data = []
|
||||
for (var i = 0; i < threads.length; i++) {
|
||||
if (threads[i].getLastMessageDate()>maxDate){
|
||||
var d = {}
|
||||
d.subject = threads[i].getFirstMessageSubject()
|
||||
d.from = threads[i].getMessages()[0].getFrom().replace(/\"|<.*>/g,'')
|
||||
d.date = threads[i].getLastMessageDate()
|
||||
d.email = threads[i].getMessages()[0].getFrom().match(/<(.*)>/)[1]
|
||||
d.uns = null
|
||||
|
||||
var uns = threads[i].getMessages()[0].getRawContent().match(/^list\-unsubscribe:(.|\r\n\s)+<(https?:\/\/[^>]+)>/im);
|
||||
if(uns) {
|
||||
d.uns = uns
|
||||
} else {
|
||||
|
||||
var rex = /.*?<a[^>]*href=["'](https?:\/\/[^"']+)["'][^>]*>(.*?)<\/a>.*?/gi
|
||||
while(u = rex.exec(threads[i].getMessages()[0].getBody())){
|
||||
if(u[0].toLowerCase().indexOf('unsubscribe')!==-1){
|
||||
d.uns=u[1]
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if(d.uns === null){
|
||||
Logger.log(d.subject)
|
||||
}
|
||||
data.push(d)
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
//run every day to send summary email including emails from last 24 hours
|
||||
function noneroll() {
|
||||
if(getEmails().length > 0) {
|
||||
var date = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd');
|
||||
var subject = "Bulk Emails: " + date;
|
||||
var hB = HtmlService
|
||||
.createTemplateFromFile('email')
|
||||
.evaluate().getContent()
|
||||
MailApp.sendEmail({
|
||||
to: Session.getActiveUser().getEmail(),
|
||||
subject: subject,
|
||||
htmlBody: hB
|
||||
});
|
||||
//Logger.log(top + ct + end)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user