/* * * _____ __ _ * / ___// /__(_)___ ________ _____ * \__ \/ //_/ / __ \/ ___/ _ \/ ___/ * ___/ / ,< / / /_/ (__ ) __/ / * /____/_/|_/_/ .___/____/\___/_/ * /_/ * * For Usage Details, Refer This Page - * http://www.skipser.com/495 * */ var ALL_TEMPLATES; var MSG; var loadingImg = 'https://lh6.googleusercontent.com/-S87nMBe6KWE/TuB9dR48F0I/AAAAAAAAByQ/0Z96LirzDqg/s27/load.gif'; function doGet(e) { var key=e.parameter.key; checkdb(key); } function Run() { ALL_TEMPLATES = GmailApp.search("in:drafts"); var app = UiApp.createApplication().setTitle('Selezionare il messaggio per la conferma di lettura.'); var mainPanel = app.createVerticalPanel().setId('mainPanel'); var button = app.createButton('Invia'); var listBox = app.createListBox().setId('myLbId').setName('myLbName').setWidth(300); listBox.addItem('Selezionare...'); var max_drafts=5; if(ALL_TEMPLATES.length < 5) { max_drafts=ALL_TEMPLATES.length; } for (var i = 0; i < max_drafts; i++) { var msgs = ALL_TEMPLATES[i].getMessages(); var msg = msgs[0]; listBox.addItem(msgs[0].getSubject()); } var img = app.createImage(loadingImg).setId("Loading").setVisible(false); var label = app.createLabel("Invio in corso.").setId("LoadingLabel").setVisible(false) mainPanel.add(listBox); mainPanel.add(button); mainPanel.add(label); mainPanel.add(img); var handler = app.createServerClickHandler('draftSelected').addCallbackElement(mainPanel); button.addClickHandler(handler); var chandler =app.createClientHandler().forEventSource().setEnabled(false).forTargets(img).setVisible(true).forTargets(label).setVisible(true); button.addClickHandler(chandler); app.add(mainPanel); SpreadsheetApp.getActiveSpreadsheet().show(app); } function draftSelected(eventInfo) { ALL_TEMPLATES = GmailApp.search("in:drafts"); var app = UiApp.getActiveApplication(); var max_drafts=5; if(ALL_TEMPLATES.length < 5) { max_drafts=ALL_TEMPLATES.length; } var value = eventInfo.parameter.myLbName; for (var i=0; i"; GmailApp.sendEmail( MSG.getTo(), MSG.getSubject(), "", { htmlBody: MSG.getBody() + "\n"+tracker, attachments: newatts, cc:MSG.getCc(), bcc:MSG.getBcc() } ); MSG.moveToTrash(); app.getElementById("LoadingLabel").setVisible(false); app.getElementById("Loading").setVisible(false); app.close(); Browser.msgBox("Fatto!!", "Mail inviata con successo", Browser.Buttons.OK); return app; } function storeindb(from,to,subject,key) { var date = Utilities.formatDate(new Date(), Session.getTimeZone(), "dd-MMM-yyyy, HH:mm:ss"); var ob={key: key, email:{subject:subject, from:from,to:to, date:date}}; var db = ScriptDb.getMyDb(); var result = db.query({key: key}); try { if(!result.hasNext()) { var stored = db.save(ob); return 1; } else { Browser.msgBox("ERROR - La chiave " + key + " esiste già, riprovare"); throw "ERROR: Chiave esistente"; } } catch(e) { Browser.msgBox("Errore memorizzazione database. " + e.toString()) throw("ERROR: Errore memorizzazione dati."); } } function checkdb(key) { var local_key=key; var db = ScriptDb.getMyDb(); var result = db.query({key: local_key}); if(result.hasNext()) { var current = result.next(); var to=current.email.to; var totmp = to.replace(/(<([^>]+)>)/ig,""); var totmp1=totmp.replace(/ /ig, ""); if(totmp1 != "") { to=totmp; } var subject = to + " ha letto la tua mail - " +current.email.subject; var message = to + " ha letto il seguente messaggio:

\n\n" + "Subject: " + current.email.subject + "
\n"+ "Sent:" + current.email.date + "

\n"; if(current.email.from != "") { MailApp.sendEmail(current.email.from, subject, "", { htmlBody:message }); } db.remove(current); } else { //do nothing } } function viewDb() { var db = ScriptDb.getMyDb(); var result = db.query({}); while (result.hasNext()) { var ob= result.next(); Logger.log(ob.key + " " + ob.email.subject + ob.email.to + ob.email.date); } } function emptyDb() { var db = ScriptDb.getMyDb(); while (true) { var result = db.query({}); if (result.getSize() == 0) { break; } while (result.hasNext()) { db.remove(result.next()); } } } function onOpen() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var menuEntries = [ {name: "Inizializza", functionName: "Initialize"}, {name: "Invia con conferma di lettura", functionName: "Run"}]; ss.addMenu("Conferma di lettura", menuEntries); } function onInstall() { onOpen(); } function Initialize() { return; }