Recentemente, ho avuto necessità di inviare una grossa quantità di email. Quando si vuol fare pubblicità tramite email è nota l’esistenza di servizi per l’email marketing a pagamento. Se vogliamo fare economia e si possiede una lista di destinatari in un foglio di calcolo (excel etc..), l’invio manuale può costarci molte ore del nostro tempo.
Quindi perchè non automatizzare l’invio in pochi e semplici passaggi con strumenti che ci vengono messi a disposizione gratuitamente?

Google Apps Script è un altro interessante progetto di Google, messo a disposizione degli utenti per creare applicativi che possano comunicare direttamente con i servizi dell’ecosistema google a noi già noti!

La sintassi di un Google script (.gs), vede l’impiego esclusivo di javascript.

Avevamo già parlato di Google Apps Script in precedenza su questo blog, discutendo dei sui potenti trigger e dei cronjob che si possono realizzare con poche righe di codice.
Tutto ciò che serve per iniziare a sviluppare il nostro script è un account Google. Per il resto è sufficiente seguire pochi semplici passaggi per poter realizzare in breve un Mailer, capace di inviare a una lista di destinatari su file .xls

Importiamo la lista sottoforma di foglio di calcolo

Recandoci sul nostro Drive, è possibile importare fogli di calcolo .xls oppure crearne di nuovo. Una volta eseguita l’opzione desiderata, non ci resta che associarvi uno script, questo è possibile clikkando la voce Strumenti > Editor di script… come mostrato sotto in figura:

Fogli di calcolo google drive

A questo punto nell’editor che si apre, incolliamo il codice seguente, prestando attenzione a configurare le 3 variabili all’inizio della funzione inviaEmails() con il nostro indirizzo email di risposta e le righe iniziali e finali da cui iniziare a prelevare i destinatari dal foglio di calcolo.

Codice sorgente Google Script

/*
* E' necessario avere un foglio di calcolo attivo in un'altra scheda per far si che si abbia una referenza corretta a quel file (SpreadsheetApp.getActiveSheet())
*/
 
function inviaEmails() {
  var replyTo = "[email protected]";
  var startRow = 1;  // Inizi a processare da questa riga
  var numRows = 3;   // Fino a questa riga
 
  var sheet = SpreadsheetApp.getActiveSheet();
  // Riga iniziale, colonna iniziale, numeri di riga, numeri di colonne
  var dataRange = sheet.getRange(startRow, 1, numRows, 1)
  // Otteniamo i valori di ogni cella nel range.
  var data = dataRange.getValues();
  for (i in data) {
    var disposizione = MailApp.getRemainingDailyQuota(); // Quota giornaliera di email restante
    if (disposizione != 0){
    var row = data[i];
    var emailAddress = row[0];  // Prima colonna
    var message = "Ciao Bellocciaaaa....";       // Messaggio della mail
    var subject = "Oggetto messaggio...";
    MailApp.sendEmail(emailAddress, replyTo, subject, message); // Il mittente è la mail associata all'account Gmail con il quale siamo loggati in Google Script.
    Logger.log("Quota rimanente:" + disposizione);
    }else{
    //salvimamo il record dove siamo arrivati nel DB. Cioè la variabile "i".
      Logger.log("La mail a "+data[i]+" numero "+i+", non è stata spedita");
    }
  }
  Logger.log("FINE Script!");
}
 
function emailRimanenti(){
 var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
 Logger.log("Email giornaliere rimanenti: " + emailQuotaRemaining);
 return emailQuotaRemaining;
}

Incollato il sorgente nell’editor sarà sufficiente selezionare la funzione da avviare e schiacciare il pulsante avvia, come mostrato nell’immagine seguente:

google app script

Eseguita la funzione, il responso è visibile direttamente dalla Console, raggiungibile dalla voce di menù Visualizza > Log oppure usando i tasti di scelta rapida Ctrl+Invio.

Limiti d’invio e quota giornaliera

E’ bene tener presente che l’invio giornaliero per un account gratuito NON business si aggira intorno alle 100 email (al giorno appunto).
Qui di seguito alcune quote imposte dalla piattaforma di Google Apps script.

Daily quota google script

Per consultare le quote aggiornate o avere maggiori informazioni andate direttamente sulla pagina dedicata alla Google Apps Script daily quota.