Eliminare automaticamente le vecchie email di Gmail per ripristinare una sincronizzazione veloce
Un account Gmail attivo da anni può contenere facilmente più di 500.000 messaggi. È proprio questo volume a rendere lentissimi Thunderbird, Outlook o i client sugli smartphone: ogni client deve indicizzare e sincronizzare l'intera casella, consumando banda, memoria e batteria. Cancellare i messaggi a mano, giorno dopo giorno, è lento e soggetto a errori.
Perché una casella enorme rallenta i client di posta
I client desktop e mobili conservano una copia locale della casella. Più thread esistono, più lunga diventa la prima sincronizzazione, più cresce il database locale e più spesso cade la connessione. Gmail resta reattivo, i client IMAP no. La soluzione pratica è conservare solo la posta recente, per esempio gli ultimi 90 giorni, ed eliminare tutto il resto.
Uno script di pulizia a lotti in Google Apps Script
Google Apps Script può eseguire la pulizia al posto tuo, gratuitamente. Apri script.google.com, crea un nuovo progetto e incolla il codice qui sotto. Modifica l'array domains e aggiungi i tuoi indirizzi o domini, perché verrà toccata solo la posta di quei mittenti. Lo script cerca i thread più vecchi di 90 giorni, li sposta nel cestino in piccoli lotti e si ferma prima di raggiungere il limite di esecuzione di sei minuti. Ogni thread resta recuperabile nel cestino per 30 giorni.
function deleteNewsletters3MonthsPermanent() {
var domains = [
"site1.com", "user@site2.com",
];
var batchSize = 25;
var totalDeleted = 0;
var startTime = new Date().getTime();
var maxExecutionTimeMs = 5 * 60 * 1000; // 5 minutes safety threshold
for (var b = 0; b < domains.length; b += batchSize) {
if (new Date().getTime() - startTime > maxExecutionTimeMs) {
Logger.log("Execution limit approaching. Stopped safely. Permanently deleted so far: " + totalDeleted);
return;
}
var chunk = domains.slice(b, b + batchSize);
var fromFilters = chunk.map(function(d) {
return d.indexOf('@') > -1 ? 'from:' + d : 'from:*@' + d;
}).join(' OR ');
var searchQuery = '(' + fromFilters + ') older_than:90d';
var pageToken = null;
do {
if (new Date().getTime() - startTime > maxExecutionTimeMs) {
Logger.log("Execution limit approaching inside pagination. Permanently deleted so far: " + totalDeleted);
return;
}
// Max results allowed per list request by the API is 500
var response = Gmail.Users.Messages.list('me', {
q: searchQuery,
maxResults: 500,
pageToken: pageToken
});
if (response.messages && response.messages.length > 0) {
var messageIds = response.messages.map(function(m) { return m.id; });
// Permanent bulk delete: 50 quota units for up to 1,000 IDs
Gmail.Users.Messages.batchDelete({ ids: messageIds }, 'me');
totalDeleted += messageIds.length;
// Small delay to keep rate pacing clean
Utilities.sleep(600);
}
pageToken = response.nextPageToken;
} while (pageToken);
}
Logger.log("Finished. Total messages permanently deleted: " + totalDeleted);
}Consigli aggiuntivi e un backup di sicurezza
Prima di eseguire qualsiasi cosa, esporta la casella con Google Takeout per conservarne una copia locale. Prova lo script con una query ristretta e poi allargala. In Thunderbird annulla l'iscrizione alla cartella Tutta la posta e limita la sincronizzazione IMAP alle intestazioni o agli ultimi giorni, perché entrambe le modifiche riducono subito il ritardo.
Lavoriamo insieme
Hai bisogno di maggiori informazioni, aiuto con il tuo progetto o di sviluppare un'idea?
Che si tratti di una domanda semplice, un dubbio rapido o una chat di 5 minuti, mandami un messaggio—non costa nulla e sono sempre pronto ad aiutare. Mi piace ascoltare per capire il problema, essere creativo nelle soluzioni e puntare a idee semplici, affidabili e non complicate da realizzare rapidamente.
Contattami →