Inviare email utilizzando Google Apps Script

Di - 11 January 2013 - in

Chissà quante volte vi sarà capitato di inviare una mail partendo dall’estrapolazione di alcuni dati inseriti in un foglio elettronico. Sappiamo tutti che non c’è cosa più noiosa che fare questo procedimento “a mano”, come si dice nel gergo degli sviluppatori. Ma oltre al motivo prettamente operativo, c’è anche il fattore tempo che non va affatto trascurato, ma anzi considerato come uno dei requisiti chiave nell’esecuzione di un processo.

Recentemente anche Tom Fitzgerald, ingegnere di Google, si è imbattuto nello stesso problema. L’azienda di famiglia, una compagnia che gestisce le aste, utilizza le Google Apps per i suoi processi di business in modo che documenti, fogli elettronici, calendari e quant’altro, siano tutti collegati tra di loro. Nello specifico l’azienda aveva bisogno di automatizzare il processo di spedizione on-site, ossia direttamente alla chiusura di un’asta, eseguendolo nel minor tempo possibile. Al termine di un’asta i clienti inseriscono in un Google Form, tramite un tablet, alcuni dati circa la spedizione ed il pagamento, che vengono salvati in un Google Spreadsheet. Successivamente vengono estrapolate alcune di queste informazioni, inviata una mail ad una persona preposta al tracciamento delle aste ed aggiunto un evento di calendario come reminder.

La soluzione creata da Tom consiste nella creazione di un Google Apps Script all’interno dello spreadsheet che recupera in modo automatico le varie informazioni, inserite dal cliente attraverso il form, ed esegue il processo di business appena descritto.

Traendo quindi spunto da questo case study, cerchiamo di creare passo per passo un piccolo automatismo molto semplice, utilizzando appunto Google Apps Script, che permetta di inviare una mail ad una persona scelta da noi, i cui dati sono presenti in uno spreadsheet.
Andate perciò nella vostra home di Google Drive e create un nuovo foglio di lavoro cliccando sull’apposito bottone “Crea”. Per semplicità create tre colonne: “Nome”, “Cognome” ed “Email”. È necessario adesso creare almeno un record (riga) in cui inserire le informazioni appena elencate. Quindi nella cella corrispondente alla colonna “Nome” inserite un qualsiasi nome, in quella corrispondente alla colonna “Cognome” inserite un qualsiasi cognome e nella cella corrispondente alla colonna “Email” inserite un qualsiasi indirizzo email valido. Quindi salvate il file.
Di seguito è mostrato un esempio di come potrebbe essere il vostro spreadsheet.

A questo punto dobbiamo creare l’App Script che invierà un’email chiedendo a chi si vuole venga inviata, semplicemente inserendo il numero del record dell’utente.
È sottinteso dirlo (ma noi non tralasciamo niente) che l’indirizzo email del mittente sarà quello con cui avete effettuato il login in Google Drive.
Per creare un nuovo script ci sono diverse possibilità. Per comodità cliccate sulla voce “Editor di script…” del menù “Strumenti” del vostro spreadsheet. Nella window “Google Apps Script” che compare, cliccate sulla voce “Progetto nuovo”. Quello che vedete davanti ai vostri occhi è l’editor per creare/modificare uno script.
L’immagine seguente mostra ciò che dovreste vedere:

Per una migliore leggibilità date un nome al vostro progetto e rinominate la funzione col nome “sendEmail()”.
Adesso dobbiamo creare la semplice logica di business precedentemente descritta:

  1. Creare una piccola finestrella (inputBox) nella quale inseriremo il numero del record della persona a cui vogliamo inviare un’email
  2. Recuperare il relativo indirizzo email
  3. Inviare un’email all’indirizzo recuperato
  4. Dare una conferma a video dell’avvenuta spedizione
Chissà quanti in questo momento stanno spalancando gli occhi! Ed invece queste semplici operazioni (senza considerare la gestione delle eccezioni) possono essere fatte in cinque/sei istruzioni! (Altro momento di sbigottimento!).

Le righe “incriminate” da scrivere all’interno della funzione “sendEmail()” sono le seguenti:

function sendEmail() {
   /* Ritorna lo sheet attivo */
   var activeSheet = SpreadsheetApp.getActiveSheet();
   /* Mostra una piccola dialog con un titolo, un testo, 2 bottoni ed un    campo in cui inserire il numero del record */
   var rowNum = Browser.inputBox("A chi vuoi inviare una mail?",    "Inserisci il numero di riga", Browser.Buttons.OK_CANCEL);
   /* Recupera l'indirizzo email del record */
   var email = activeSheet.getRange("C" + rowNum).getValue();
   /* Recupera il nome ed il cognome della persona a cui si vuole inviare    una mail */
   var person = activeSheet.getRange("A" + rowNum).getValue() + " " +    activeSheet.getRange("B" + rowNum).getValue();
   /* Viene inviata una mail all'indirizzo contenuto nella variabile    "email", con un oggetto ed un corpo del messaggio */
   MailApp.sendEmail(email, "Script di prova", "Questo è il mio primo    script con Google Apps Script!");
   /* Mostra una piccola dialog di avvenuta spedizione */
   Browser.msgBox("Mail inviata con successo!", "Mail inviata a " +    person, Browser.Buttons.OK);
}

Per maggiori approfondimenti è possibile consultare la guida in linea di Google Apps Script.

È bene ricordare due cose molto importanti:

  1. Il linguaggio è case-sensitive. Significa che c’è una differenza tra lettere maiuscole e minuscole. Quindi, ad esempio, la variabile activeSheet è diversa da activesheet, così come i nomi dei metodi.
  2. L’editor offre la funzionalità di completamento automatico. Ciò vuol dire che se iniziate a digitare, ad esempio, il nome di una variabile precedentemente creata, premendo la combinazione di tasti di scelta rapida (“Ctrl + Space” su Windows, “Shift + Alt + 7” su Mac), verrà automaticamente completata.

Una volta salvato il file non rimane che provare lo script per vedere che tutto funzioni.
Tornate quindi al vostro spreadsheet e cliccate sulla voce “Gestione script…” del menù “Strumenti”. Nella window che compare, selezionate lo script appena creato e cliccate sul tasto “Esegui”. Nel caso in cui questa fosse la prima volta che eseguite uno script, prima vedrete apparire una dialog in cui vi si chiede l’autorizzazione per permettere allo script di accedere ai servizi che vengono menzionati.
A questo punto, se tutto è andato per il verso giusto, dovreste vedere apparire la dialog in cui vi si chiede di inserire il numero del record dell’utente a cui si vuole inviare una mail. Dopo averlo inserito e dato l’ok, una nuova dialog vi mostrerà un messaggio di spedizione avvenuta. Complimenti! Avete appena inviato la vostra prima email utilizzando Google Apps Script!
Per fare la prova del nove basta semplicemente controllare che l’utente abbia ricevuto la suddetta email. Il mio consiglio, quindi, è di inserire nello spreadsheet un altro vostro indirizzo email, in modo da fare quante più prove volete.

Nonostante sia entrato molto in dettaglio sulla creazione di questo script, l’intento del presente articolo è semplicemente mostrare quanto possa essere facile e di grande aiuto creare degli script utilizzando questo divertente, intuitivo, potente e versatile linguaggio di scripting di Google, ed al contempo stimolare la voglia e la nota creativa di quanti non lo hanno ancora provato. Si potrebbe benissimo incominciare modificando questo script in modo che gestisca le eccezioni, come ad esempio controllare che venga inserito un numero intero e non un altro carattere nella dialog di inserimento del record, oppure controllare che l’indirizzo email che si va a prelevare sia nella forma corretta, ed in caso contrario avvisare l’utente e magari permettergli di modificarlo.
Quindi cosa state aspettando?! Create un nuovo file di scripting ed iniziate a divertirvi!

Via | Google Apps Developer Blog

Leave a Reply

Fabrizio Variano Articolo scritto da

Laureato e specializzato in Informatica con il massimo dei voti, lavora come Software engineer con compiti di team leading progettando e sviluppando soluzioni in ambito web con tecnologie Java e “dintorni”. Grande appassionato di tecnologia, negli ultimi anni si è avvicinato all’ambito mobile, sia hardware che software, con l’intento di far suo questo mondo affascinante. Oltre a viaggiare, tra i suoi hobby ci sono: la moto, la cucina ed il cinema.

Contatta l'autore

Previous post:

Next post: