-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmail_extractor.js
115 lines (98 loc) · 3.09 KB
/
mail_extractor.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//Search parameters - Change subject or add keywords
var SEARCH_QUERY = "label:inbox is:unread from:me to:me";
//Find emails
function getEmails_(q)
{
var emails = [];
//Number of searches
var threads = GmailApp.search(q);
for (var i in threads)
{
//Number of messages
var msgs = threads[i].getMessages();
Logger.log(threads[i] + "THREAD")
for (var j in msgs)
{
emails.push([msgs[j].getBody()
.replace(/<.*?>/g, '\n')
.replace(/^\s*\n/gm, '')
.replace(/^\s*/gm, '')
.replace(/\s*\n/gm, '\n')]);
}
}
return emails;
}
//Append data
function appendData_(sheet, array2d)
{
//Paste values/emails
sheet.getRange(sheet.getLastRow() + 1, 1, array2d.length, array2d[0].length).setValues(array2d);
}
//Send Email
function sendEmail_()
{
//Sheet with Emails
var textEmail = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EmailDump").getRange(1,1).getValue();
var textEmailString = textEmail.toString();
var posTopicString = textEmailString.search("Topic");
var posDateString = textEmailString.search("Date");
var subString = textEmailString.substring(posTopicString, posDateString+20);
//Sheet with Email IDS = EmailIDS
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EmailIDS").activate();
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow();
var count = 0;
for(var i=2; i<=lr; i++)
{
//Sheet with Email IDS
//Column Email
var currentEmail = ss.getRange(i, 2).getValue();
//Column Name
var currentName = ss.getRange(i, 1).getValue();
var messageBody = subString;
var subjectLine = "Reminder: " + " is DUE";
count += 1;
Logger.log(count);
Logger.log(currentName);
Logger.log(currentEmail);
Logger.log(subjectLine);
Logger.log(messageBody);
MailApp.sendEmail(currentEmail, subjectLine, messageBody);
}
}
//Clear Page
function clear_()
{
var i = 0;
var name;
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var numer = SpreadsheetApp.getActiveSpreadsheet().getNumSheets();
for(i=0; i<numer; i++)
{
name = sheets[i].getName();
SpreadsheetApp.getActiveSpreadsheet().getSheetByName(name).activate();
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
if(name == "EmailDump")
{
sheet.clear();
}
}
}
//Save email
function saveEmails()
{
//Clear
clear_();
//Find emails
var array2d = getEmails_(SEARCH_QUERY);
//If found
if (array2d)
{
//Logger.log(array2d.length() + " STOP");
//Saved in a spread sheet
appendData_(SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EmailDump").activate(), array2d);
Logger.log("FOUND")
}
sendEmail_();
}