/*
*
* _____ __ _
* / ___// /__(_)___ ________ _____
* \__ \/ //_/ / __ \/ ___/ _ \/ ___/
* ___/ / ,< / / /_/ (__ ) __/ /
* /____/_/|_/_/ .___/____/\___/_/
* /_/
*
* 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;
}