Automazione di Gmail: 8 Script Google Utili per Automatizzare la Tua Gmail

Gmail, di per sé, è già un client email molto potente. Con l’aiuto dei filtri, puoi impostare automazioni per organizzare meglio la tua posta in arrivo. Tuttavia, per gli utenti avanzati, la funzione di filtro non è sufficiente rispetto alla scrittura di script personalizzati. Questi otto script Google possono ulteriormente automatizzare la tua Gmail.
Suggerimento: prova un altro semplice consiglio per Gmail: imposta l’inoltro automatico in Gmail.
Indice
- Elimina automaticamente le email dopo X giorni
- Archivia tutte le email vecchie
- Ricevi notifiche SMS per email importanti
- Crea un riepilogo delle tue email
- Salva le email come PDF in Google Drive
- Invia automaticamente email di follow-up
- Etichetta le email in base a parole chiave nell’oggetto
- Inoltra determinate email a più indirizzi
- Domande frequenti
1. Elimina automaticamente le email dopo X giorni
Molto spesso, dopo aver letto un’email, le teniamo semplicemente nella nostra casella di posta indipendentemente da quanto siano utili. Ora che Google ha messo un limite nello spazio, potresti voler ripulire la tua casella di posta e liberarti di quelle email inutili. Il seguente script può controllare le email con l’etichetta “Elimina Me” e eliminarle dopo “X” giorni.
- Assicurati di essere connesso al tuo account Google, vai su Google Scripts e crea un nuovo progetto.

- Incolla il seguente script e salvalo. Puoi cambiare il numero di giorni (la variabile
delayDays) che passano prima che le email vengano eliminate dalla tua casella di posta.
function auto_delete_mails(){
var label = GmailApp.getUserLabelByName("Delete Me");
if(label == null){
GmailApp.createLabel('Delete Me');
}
else{
var delayDays =2; // Inserisci # di giorni prima che i messaggi vengano spostati nel cestino
var maxDate =new Date();
maxDate.setDate(maxDate.getDate()-delayDays);
var threads = label.getThreads();
for(var i =0; i < threads.length; i++){
if(threads[i].getLastMessageDate()- Crea un nuovo trigger per eseguire il tuo script su base oraria. Apri “l’icona del programma sulla barra laterale sinistra -> Trigger -> Aggiungi Trigger.”

- Personalizza le impostazioni del tuo trigger per eseguire lo script ogni ora (o quanto spesso desideri), poi scorri verso il basso e fai clic su “Salva.”

Una volta che questo script viene eseguito, creerà una nuova etichetta, “Elimina Me,” nel tuo account Gmail. Tagga le tue email indesiderate con questa etichetta, e saranno eliminate dopo il numero di giorni specificato nel tuo script.
Suggerimento: Se la tua email sembra sfuggire al controllo, leggi la nostra recensione su SaneBox e scopri se può aiutarti a gestire la tua email.
2. Archivia tutte le email vecchie
Se vuoi un’opzione meno rischiosa rispetto all’eliminazione delle email, puoi creare uno script per archiviare tutte le tue vecchie email seguendo i passaggi qui sotto.
- Crea un nuovo script Google con il seguente codice:
function archiveOldEmails(){
// Ottieni tutti i thread nella posta in arrivo
var threads = GmailApp.getInboxThreads();
// Esegui il loop attraverso tutti i thread
for(var i =0; i < threads.length; i++){
var thread= threads[i];
var messages =thread.getMessages();
// Esegui il loop attraverso tutti i messaggi nel thread
for(var j =0; j < messages.length; j++){
var message = messages[j];
var age =(new Date() - message.getDate()) / (1000 * 60 * 60 * 24);
// Se il messaggio è più vecchio di 30 giorni, archivialo
if(age >30){
thread.moveToArchive();
}
}
}
}- Crea un trigger (come mostrato sopra) per eseguire lo script ogni giorno.
All’orario scelto, lo script verrà eseguito e sposterà le email dalla tua casella di posta all’archivio. Queste email archiviate saranno ancora disponibili nella sezione “Tutte le email.”
Buono a sapersi: se non ti interessa delle email nella tua casella di posta e vuoi semplicemente pulirla rapidamente, questa guida mostra come segnare tutte le tue email non lette come lette e eliminarle.
3. Ricevi notifiche SMS per email importanti
Questo script Google utilizza la funzione SMS di Google Calendar per inviarti un SMS quando ricevi un’email importante.
- Crea un nuovo script Google con il seguente codice:
function Gmail_send_sms(){
var label = GmailApp.getUserLabelByName("Send Text");
if(label == null){
GmailApp.createLabel('Send Text');
}
else{
var threads = label.getThreads();
var now =new Date().getTime();
for(var i =0; i < threads.length; i++){
var message = threads[i].getMessages()[0];
var from= message.getFrom();
var subject = message.getSubject();
CalendarApp.createEvent(subject,new Date(now+60000),new Date(now+60000),{location: from}).addSmsReminder(0);
}
label.removeFromThreads(threads);
}
}- Salvalo e crea un trigger per eseguirlo ogni cinque minuti.
- Crea un nuovo filtro Gmail che aggiunga automaticamente l’etichetta “Send Text” alle email in arrivo selezionate. In Gmail, fai clic sull’icona delle Opzioni di Ricerca nella barra di ricerca in alto.

- Personalizza i criteri per le notifiche SMS che ti avviseranno che hai email importanti nella tua casella di posta, poi fai clic su “Crea filtro.”

- Spunta “Applica l’etichetta,” scegli “Send Text” e fai clic su “Crea filtro.”

Lo script esaminerà la tua casella di posta ogni cinque minuti. Quando rileva un’email con l’etichetta “Send Text,” creerà immediatamente un evento in Google Calendar, il quale attiverà l’SMS.
Suggerimento: puoi anche inviare messaggi SMS dal tuo PC.
4. Crea un riepilogo delle tue email
Invece di leggere tutte le tue email individualmente, puoi scrivere uno script per creare un unico riepilogo delle tue email non lette.
- Crea un nuovo script Google con il seguente codice:
function createEmailSummary(){
// Cerca email non lette
var threads = GmailApp.search("is:unread");
var summary ="Email Non Letto:\n";
for(var i =0; i < threads.length; i++){
var messages = threads[i].getMessages();
for(var j =0; j < messages.length; j++){
var message = messages[j];
summary += message.getFrom() + ": " + message.getSubject() + "\n";
}
}
// Cerca email con parole chiave specifiche nell'oggetto
var threads = GmailApp.search("subject:(riunione importante)");
summary +="\nEmail con parola chiave 'riunione importante' nell'oggetto:\n";
for(var i =0; i < threads.length; i++){
var messages = threads[i].getMessages();
for(var j =0; j < messages.length; j++){
var message = messages[j];
summary += message.getFrom() + ": " + message.getSubject() + "\n";
}
}
// Puoi aggiungere ulteriori criteri di ricerca qui
// ...
// Invia il riepilogo come email
GmailApp.sendEmail("[email protected]","Riepilogo Email", summary);
}- Cambia “[email protected]” con la tua email.
- Crea un nuovo trigger per eseguire lo script ogni giorno.

Quando lo script viene eseguito, ti invierà un’email che include quante email di ciascun tipo non hai ancora letto. Lo script sopra è un buon punto di partenza – conta il numero di email con “riunione importante” nell’oggetto. Puoi adattare lo script per contare i tuoi criteri di ricerca desiderati.
5. Salva le email come PDF in Google Drive
Se hai un’email che vuoi archiviare in Google Drive, puoi utilizzare uno script Google per salvarla come PDF nel tuo account Google Drive. Il seguente script salverà tutti i messaggi in un thread email come un unico file PDF nel tuo Google Drive. Se l’email ha allegati, creerà una cartella e archivierà i messaggi e gli allegati al suo interno.
- Crea un nuovo script Google con il seguente codice:
function save_Gmail_as_PDF(){
// Ottieni l'etichetta "Salva come PDF" o creala se non esiste
var label = GmailApp.getUserLabelByName("Save As PDF");
if(label == null){
label = GmailApp.createLabel('Save As PDF');
}
// Ottieni i thread con l'etichetta
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
var subject = messages[0].getSubject();
var bodys = [];
// Esegui il loop attraverso tutti i messaggi nel thread
for(var j = 0; j < messages.length; j++){
var message = messages[j];
bodys.push({
body: message.getPlainBody(),
from: message.getFrom(),
});
var attachments = message.getAttachments();
var temp_attach = message.getAttachments();
if(temp_attach.length > 0){
for(var k =0; k < temp_attach.length; k++){
attachments.push(temp_attach[k]);
}
}
}
// Crea un documento Google Docs dal corpo del messaggio
var bodyDoc = DocumentApp.create(subject);
var bodyDocId = bodyDoc.getId();
var bodyDocFile = DriveApp.getFileById(bodyDocId);
var bodyDocBody = bodyDoc.getBody();
bodyDocBody.setText(bodys.map(obj => `Da: ${obj.from}\n${obj.body}`).join('\n\n'));
bodyDoc.saveAndClose();
// Converti il documento Google Docs in un PDF
var blob = bodyDocFile.getAs('application/pdf');
var pdfFile = DriveApp.createFile(blob);
// Se ci sono allegati
if(attachments.length > 0){
// Crea una cartella in Drive con l'oggetto del messaggio
var folder = DriveApp.createFolder(subject);
for (var j = 0; j < attachments.length; j++) {
folder.createFile(attachments[j]);
}
// Aggiungi il file PDF del corpo del messaggio alla cartella
folder.createFile(pdfFile);
}
// Rimuovi il documento Google Docs da Google Drive
DriveApp.getFileById(bodyDocId).setTrashed(true);
// Rimuovi l'etichetta dal thread
label.removeFromThread(threads[i]);
}
}- Salvalo e imposta un trigger affinché venga eseguito a intervalli regolari.

Quando vuoi salvare un’email e i suoi allegati in Google Drive, semplicemente etichettala con “Salva come PDF.” Il corpo di ogni email e il mittente, in ogni thread, saranno mostrati in ordine, partendo dal più vecchio.
Buono a sapersi: non sei sicuro di quanti file hai nella tua cartella Google Drive? Questa guida mostra come scoprirlo.
6. Invia automaticamente email di follow-up
Potresti non ricevere sempre una risposta immediata alle tue email. Per affrontare questo problema, puoi inviare un’email di follow-up per ricordare ai destinatari dell’email. Invece di scrivere ogni follow-up manualmente, puoi inviarli automaticamente con uno script!
- Crea un nuovo script Google con il seguente codice:
function sendFollowupEmails(){
const startDate =new Date('2023-01-01');
const daysAgo =3;
var dateInPast =new Date();
dateInPast.setDate(dateInPast.getDate() - daysAgo);
var threads = GmailApp.search("is:sent before:" + dateInPast.toLocaleDateString() + " after:" + startDate.toLocaleDateString());
for(var i =0; i < threads.length; i++){
var conversation = threads[i];
var foundResponse = false;
// Se un thread inviato ha più di 1 email, non è necessario fare follow-up
// perché abbiamo già effettuato un follow-up o hanno risposto.
if (conversation.getMessages().length > 1) {
foundResponse = true;
}
if (!foundResponse) {
var body = "Ciao, volevo solo fare un follow-up sulla mia email precedente. Se non ricevo risposta, presumerò che non sei interessato. \n\nCordiali saluti,\n[Tuo Nome]";
conversation.replyAll(body);
}
}
}- Personalizza alcune cose in questo script:
- Cambia
startDatea un momento più vicino al giorno presente per non risuscitare thread molto vecchi. - Cambia
daysAgoper personalizzare quanto vecchia vuoi che sia un’email prima di inviare un follow-up. - Cambia
[Tuo Nome]con il tuo nome.
- Salvalo e imposta un trigger per eseguire ogni sette giorni.
Continua a inviare email normalmente, e lo script gestirà automaticamente i follow-up.
7. Etichetta le email in base a parole chiave nell’oggetto
Se ti senti sopraffatto dalle email ma non vuoi eliminarne la maggior parte, puoi utilizzare questo script per etichettarle e organizzarle in base al loro contenuto.
- Crea un nuovo script Google con il seguente codice:
function categorizeEmails(){
const emailsToGet =50;
var keywords ={
"promo": "Promozioni",
"offerta": "Promozioni",
"sconto": "Promozioni",
"newsletter": "Newsletter",
"azione": "Todo",
"richiesta": "Todo",
"spedito": "Ordini",
"consegnato": "Ordini",
"ricevuta": "Ordini",
"fattura": "Ordini"
};
var threads = GmailApp.getInboxThreads(0, emailsToGet);
for(var i =0; i < threads.length; i++){
var subject = threads[i].getFirstMessageSubject().toLowerCase();
var labels = GmailApp.getUserLabels();
var foundLabel = false;
for(var keyword in keywords){
if(subject.indexOf(keyword)!== -1){
for(var j =0; j < labels.length; j++){
if(labels[j].getName()=== keywords[keyword]){
threads[i].addLabel(labels[j]);
foundLabel = true;
break;
}
}
if(!foundLabel){
GmailApp.createLabel(keywords[keyword]);
threads[i].addLabel(GmailApp.getUserLabelByName(keywords[keyword]));
}
break;
}
}
}
}- Puoi personalizzare il numero di email interessate con la variabile
emailsToGeto parole chiave e etichette con la variabilekeywords. - Salva lo script e imposta un trigger per eseguirlo ogni pochi minuti o ore.

Questo ti consente di rimanere aggiornato visualizzando solo le email con un’etichetta specifica. Questo script funziona bene su gran parte della tua email, risparmiandoti dal semplicemente eliminarle.
Suggerimento: imposta più firme in Gmail e cambia rapidamente fra di esse per diversi pubblici.
8. Inoltra determinate email a più indirizzi
Sebbene Gmail abbia un metodo integrato per inoltrare email a un altro indirizzo email, non può facilmente inoltrare email con un certo criterio a più indirizzi email, ma questo script può.
- Crea un nuovo script con il seguente codice:
function emailForwarding(){
const emailsToGet =50;
var criteria =[
{
sender: "[email protected]",
subjectContains: "fattura",
forwardTo: ["[email protected]","[email protected]"]
},
{
sender: "[email protected]",
subjectContains: "urgente",
forwardTo: ["[email protected]","[email protected]"]
}
];
var label = GmailApp.getUserLabelByName("Inoltrato");
if(!label){
label = GmailApp.createLabel("Inoltrato");
}
var threads = GmailApp.search("is:inbox",0, emailsToGet);
for(var i =0; i < threads.length; i++){
var messages = threads[i].getMessages();
console.log('id thread:', threads[i].getId());
for(var j =0; j < messages.length; j++){
var message = messages[j];
var sender = message.getFrom();
var subject = message.getSubject().toLowerCase();
console.log('mittente', sender,'oggetto', subject);
for(var k =0; k < criteria.length; k++){
var rule = criteria[k];
if(sender.indexOf(rule.sender)!= -1 && subject.indexOf(rule.subjectContains)!= -1){
var recipient = rule.forwardTo.join(",");
GmailApp.sendEmail(recipient, subject, message.getPlainBody(),{cc: sender});
threads[i].addLabel(label);
}
}
}
}
}- Personalizza i criteri secondo necessità.
- Crea un trigger che eseguirà lo script ogni pochi minuti o ore.
La tua Gmail inoltrerà automaticamente le email che corrispondono ai tuoi criteri a due o più indirizzi email.
Buono a sapersi: Gmail ha un metodo integrato per rispondere automaticamente alle email se sei in vacanza o fuori ufficio.
Domande frequenti
È gratuito utilizzare Google Apps Script?
Sì, Google Apps Script è gratuito da usare finché hai un’email Gmail. Tuttavia, ci sono dozzine di quote e limitazioni sul tuo utilizzo. Google potrebbe modificare queste in qualsiasi momento, ma al momento della scrittura, includono quasi 40 funzionalità, come documenti creati, email lette/scritture, fogli di calcolo creati e runtime totale dei trigger. Gli account gratuiti hanno un limite molto basso, mentre Google Workspace ha un limite molto più alto.
Posso usare Google Apps Script per accedere ai dati di altri servizi?
Sì, Google Apps Script non è limitato a lavorare con i servizi Google. Puoi accedere ai dati da servizi esterni non Google su Internet (ad esempio, l’API di Pokémon) utilizzando classi integrate come UrlFetchApp in questo modo:
var response = UrlFetchApp.fetch("https://pokeapi.co/api/v2/pokemon/ditto"); Logger.log(response.getContentText()); // Tutti i dettagli di Ditto verrebbero registrati
Cosa devo fare se ricevo errori nel mio Google Apps Script?
Puoi fare il debug del tuo codice per identificare e risolvere l’errore. Fortunatamente, Google Apps Script ha un debugger integrato che puoi usare per risolvere il tuo codice. Per usarlo, apri semplicemente l’editor di script e fai clic su Debug. Da lì, puoi impostare punti di interruzione, eseguire il codice passo passo e ispezionare variabili per aiutare a identificare eventuali problemi.
Crediti immagine: Pexels. Tutte le schermate di Brandon Li.