Site icon Syrus

Creare un Programma Newsletter GRATIS con Google Script, Google Sheet e Gmail

Google Script

Creare e gestire una newsletter non è mai stato così facile grazie all’integrazione di Google Script, Google Sheet e Gmail. In questo articolo, vi guiderò passo dopo passo su come impostare un sistema di newsletter utilizzando questi strumenti gratuiti. Non è necessario avere competenze avanzate di programmazione, solo una conoscenza di base di Google Sheets e la disponibilità a seguire alcune semplici istruzioni.

Passaggi per Creare il Programma Newsletter

1. Accedere a Google Script tramite Google Sheet

Per iniziare, apri un nuovo foglio di calcolo su Google Sheet. Una volta aperto il foglio, vai al menu “Estensioni” e seleziona “Apps Script”. Questo ti porterà alla piattaforma Google Script, dove potrai inserire il codice necessario.

2. Autorizzazioni Richieste

Al primo run del Google Script, sarà necessario concedere le autorizzazioni per leggere e scrivere sul foglio di calcolo e per inviare email tramite il tuo account Gmail. Questo è un passaggio fondamentale per garantire che lo script possa funzionare correttamente. Segui le istruzioni visualizzate per concedere le autorizzazioni necessarie.

3. Inserimento del Codice Google Script

Di seguito è riportato il codice completo del Google Script che dovrai inserire nella piattaforma Apps Script. Questo codice creerà una nuova interfaccia utente nel foglio di calcolo, invierà le email e registrerà i dettagli di invio in un log.


// Funzione che viene eseguita automaticamente all'apertura del foglio Google
function onOpen() {
  // Creare l'interfaccia utente personalizzata
  var ui = SpreadsheetApp.getUi();
  // Aggiungere un menu personalizzato chiamato 'Newsletter' con un'opzione per inviare le email
  ui.createMenu('Newsletter')
      .addItem('Invia Email', 'inviaNewsletter')
      .addToUi();
  
  // Ottenere il riferimento al foglio di calcolo attivo
  var foglio = SpreadsheetApp.getActiveSpreadsheet();
  // Chiamare la funzione per creare i fogli necessari se non esistono
  creaFogliSeNonEsistono(foglio);
}

// Funzione principale per inviare la newsletter
function inviaNewsletter() {
  // Ottenere il riferimento al foglio di calcolo attivo
  var foglio = SpreadsheetApp.getActiveSpreadsheet();
  
  // Ottenere i dati necessari dai fogli
  // Leggere tutti gli indirizzi email dal foglio "Rubrica"
  var indirizzi = foglio.getSheetByName("Rubrica").getDataRange().getValues();
  // Ottenere il riferimento al foglio "Messaggio da Inviare"
  var messaggioSheet = foglio.getSheetByName("Messaggio da Inviare");
  // Leggere l'oggetto dell'email dalla cella A2
  var oggetto = messaggioSheet.getRange("A2").getValue();
  // Leggere il testo dell'email dalla cella B2
  var testo = messaggioSheet.getRange("B2").getValue();
  // Ottenere il riferimento al foglio "Log"
  var logSheet = foglio.getSheetByName("Log");
  
  // Ciclo per inviare email a ciascun indirizzo
  for (var i = 1; i < indirizzi.length; i++) {
    var email = indirizzi[i][0];
    if (email) {
      try {
        // Inviare l'email utilizzando il servizio MailApp di Google
        MailApp.sendEmail(email, oggetto, testo);
        
        // Registrare l'invio nel foglio di log
        logSheet.appendRow([new Date(), email, oggetto]);
        
        // Pausa di 1 secondo per evitare di superare i limiti di quota di Google
        Utilities.sleep(1000);
      } catch (e) {
        // Gestire eventuali errori nell'invio e registrarli nel log di esecuzione
        Logger.log("Errore nell'invio a " + email + ": " + e.toString());
      }
    }
  }
  
  // Mostrare un messaggio di completamento all'utente
  SpreadsheetApp.getUi().alert('Invio newsletter completato!');
}

// Funzione per creare i fogli necessari se non esistono e rimuovere il foglio "Foglio1" se presente
function creaFogliSeNonEsistono(foglio) {
  var nomiFogli = ["Rubrica", "Messaggio da Inviare", "Log"];
  var fogliCreati = false;
  
  // Iterare attraverso i nomi dei fogli necessari
  nomiFogli.forEach(function(nome) {
    if (!foglio.getSheetByName(nome)) {
      // Se il foglio non esiste, crearlo
      var nuovoFoglio = foglio.insertSheet(nome);
      fogliCreati = true;
      
      // Configurazione iniziale per ciascun foglio
      switch(nome) {
        case "Rubrica":
          // Aggiungere l'intestazione per il foglio Rubrica
          nuovoFoglio.getRange("A1").setValue("Indirizzo Email");
          break;
        case "Messaggio da Inviare":
          // Aggiungere le intestazioni per il foglio Messaggio da Inviare
          nuovoFoglio.getRange("A1:B1").setValues([["Oggetto", "Testo"]]);
          break;
        case "Log":
          // Aggiungere le intestazioni per il foglio Log
          nuovoFoglio.getRange("A1:C1").setValues([["Data e Ora", "Indirizzo Email", "Oggetto"]]);
          break;
      }
    }
  });
  
  // Se sono stati creati nuovi fogli, controllare e rimuovere "Foglio1" se presente
  if (fogliCreati) {
    var foglio1 = foglio.getSheetByName("Foglio1");
    if (foglio1) {
      foglio.deleteSheet(foglio1);
    }
  }
}

Il codice sopra riportato svolge diverse funzioni chiave. Quando il foglio Google viene aperto, crea un menu personalizzato chiamato “Newsletter” che consente di inviare email direttamente dal foglio di calcolo. Inoltre, verifica la presenza dei fogli necessari (“Rubrica”, “Messaggio da Inviare”, “Log”) e li crea se non esistono già.

4. Utilizzare lo Script per Inviare Newsletter

Ora che hai configurato il tuo Google Script, è il momento di utilizzarlo per inviare la tua newsletter. Ecco come fare:

Grazie a questa soluzione, potrai gestire le tue campagne email direttamente da Google Sheet, senza la necessità di strumenti aggiuntivi. Questo sistema è ideale per chi desidera una soluzione semplice e gratuita per inviare newsletter in modo efficiente.

Creare un sistema di invio newsletter utilizzando Google Script, Google Sheet e Gmail è un’ottima opzione per chi vuole gestire le proprie comunicazioni in modo autonomo e senza costi aggiuntivi. Con pochi semplici passaggi, potrai inviare email personalizzate ai tuoi contatti e tenere traccia delle tue campagne direttamente dal foglio di calcolo.

Syrus

Exit mobile version