Last active
June 6, 2021 05:57
-
-
Save gnunicorn/1838132 to your computer and use it in GitHub Desktop.
Revisions
-
gnunicorn revised this gist
Apr 22, 2013 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -66,7 +66,6 @@ function _send_mails(mail, name, trial) { attrs = data.shift(), count = 0, mail, bodyCopy, attachments, subjectCopy, idx, line_idx, mail_idx, line; mail_idx = attrs.indexOf('Email'); if (mail_idx === -1) { Browser.msgBox("Canceled: At least one row must be called 'email'"); @@ -75,6 +74,7 @@ function _send_mails(mail, name, trial) { attachments = mail.getAttachments(); for (line_idx in data) { line = data[line_idx]; bodyCopy = mail.getBody(); @@ -84,7 +84,7 @@ function _send_mails(mail, name, trial) { subjectCopy = subjectCopy.replace("{{" + attrs[idx] + "}}", line[idx]); } count += 1; if(trial == "true") { Browser.msgBox("to:" + line[mail_idx] + "\nSubject:" + subjectCopy + "\nBody:" + bodyCopy); return; } else { -
gnunicorn renamed this gist
Apr 22, 2013 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
gnunicorn revised this gist
Apr 22, 2013 . 1 changed file with 24 additions and 14 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,6 +3,8 @@ * * Changelog: * * 27. Apr. 2013 * - trial checkbox allows easier debugging * 16. Feb. 2012 * - released the first version to public * 15. Feb. 2012 @@ -11,14 +13,13 @@ * 10. Feb. 2012 * - add Support to load Mail from Draft */ function start_mailer() { var myapp = UiApp.createApplication().setTitle('Mass Emailer').setHeight(150).setWidth(300); var top_panel = myapp.createFlowPanel(); top_panel.add(myapp.createLabel("Please select the draft you'd like to be sent")); var lb = myapp.createListBox(false).setId('msg').setWidth(300).setName('message').setVisibleItemCount(1); var threads = GmailApp.search('is:draft', 0, 10); if (threads.length === 0) { @@ -31,38 +32,42 @@ function start_mailer() { } top_panel.add(lb); top_panel.add(myapp.createLabel("Name to send from (optional)")); var name_box = myapp.createTextBox().setName("name").setWidth(300); top_panel.add(name_box); var check_box = myapp.createCheckBox().setName("trial").setText("Trail Run").setWidth(300); top_panel.add(check_box); var ok_btn = myapp.createButton('Send mails now'); top_panel.add(ok_btn); myapp.add(top_panel); var handler = myapp.createServerClickHandler('callback').addCallbackElement(lb).addCallbackElement(name_box).addCallbackElement(check_box); ok_btn.addClickHandler(handler); SpreadsheetApp.getActiveSpreadsheet().show(myapp); } function callback(e) { var mail = GmailApp.getMessageById(e.parameter.message); _send_mails(mail, e.parameter.name, e.parameter.trial); var app = UiApp.getActiveApplication(); app.close(); return app; } function _send_mails(mail, name, trial) { var ws = SpreadsheetApp.getActiveSpreadsheet().getActiveSelection(), data = ws.getValues(), attrs = data.shift(), count = 0, mail, bodyCopy, attachments, subjectCopy, idx, line_idx, mail_idx, line; mail_idx = attrs.indexOf('Email'); if (mail_idx === -1) { Browser.msgBox("Canceled: At least one row must be called 'email'"); return; @@ -79,11 +84,16 @@ function _send_mails(mail, name) { subjectCopy = subjectCopy.replace("{{" + attrs[idx] + "}}", line[idx]); } count += 1; if(trial) { Browser.msgBox("to:" + line[mail_idx] + "\nSubject:" + subjectCopy + "\nBody:" + bodyCopy); return; } else { GmailApp.sendEmail(line[mail_idx], subjectCopy, bodyCopy, { htmlBody: bodyCopy, name: name, attachments: attachments }); } } Browser.msgBox(count + " Mails send"); -
gnunicorn revised this gist
Apr 22, 2013 . No changes.There are no files selected for viewing
-
gnunicorn revised this gist
Feb 16, 2012 . 1 changed file with 14 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,3 +1,17 @@ /* * Mass Emailer Google Spreadsheet script. * * Changelog: * * 16. Feb. 2012 * - released the first version to public * 15. Feb. 2012 * - add possibility to change the name * - add full-blown UI * 10. Feb. 2012 * - add Support to load Mail from Draft */ function start_mailer() { var myapp = UiApp.createApplication().setTitle('Mass Emailer').setHeight(120).setWidth(300); var top_panel = myapp.createFlowPanel(); -
gnunicorn created this gist
Feb 15, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,84 @@ function start_mailer() { var myapp = UiApp.createApplication().setTitle('Mass Emailer').setHeight(120).setWidth(300); var top_panel = myapp.createFlowPanel(); top_panel.add(myapp.createLabel("Please select the draft you'd like to be sent")); var lb = myapp.createListBox(false).setId('msg').setWidth(250).setName('message').setVisibleItemCount(1); var threads = GmailApp.search('is:draft', 0, 10); if (threads.length === 0) { Browser.msgBox("Please save your template as a draft in your gmail account!"); return; } for (var i = 0; i < threads.length; i++) { lb.addItem("" + threads[i].getFirstMessageSubject(), threads[i].getMessages()[0].getId()); } top_panel.add(lb); top_panel.add(myapp.createLabel("Name to send from (optional)")) var name_box = myapp.createTextBox().setName("name").setWidth(250); top_panel.add(name_box); var ok_btn = myapp.createButton('Send mails now'); top_panel.add(ok_btn); myapp.add(top_panel); var handler = myapp.createServerClickHandler('callback').addCallbackElement(lb).addCallbackElement(name_box); ok_btn.addClickHandler(handler); SpreadsheetApp.getActiveSpreadsheet().show(myapp); } function callback(e) { var mail = GmailApp.getMessageById(e.parameter.message); _send_mails(mail, e.parameter.name); var app = UiApp.getActiveApplication(); app.close(); return app; } function _send_mails(mail, name) { var ws = SpreadsheetApp.getActiveSpreadsheet().getActiveSelection(), data = ws.getValues(), attrs = data.shift(), count = 0, mail, bodyCopy, attachments, subjectCopy, idx, line_idx, mail_idx, line; mail_idx = attrs.indexOf('email'); if (mail_idx === -1) { Browser.msgBox("Canceled: At least one row must be called 'email'"); return; } attachments = mail.getAttachments(); for (line_idx in data) { line = data[line_idx]; bodyCopy = mail.getBody(); subjectCopy = mail.getSubject(); for (idx in attrs) { bodyCopy = bodyCopy.replace("{{" + attrs[idx] + "}}", line[idx]); subjectCopy = subjectCopy.replace("{{" + attrs[idx] + "}}", line[idx]); } count += 1; GmailApp.sendEmail(line[mail_idx], subjectCopy, bodyCopy, { htmlBody: bodyCopy, name: name, attachments: attachments }) } Browser.msgBox(count + " Mails send"); } function onOpen() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var menuEntries = [ {name: "Send Mass Email", functionName: "start_mailer"}]; ss.addMenu("Mass-Mailer", menuEntries); }