Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Questo script consente di automatizzare il processo di eliminazione dei messaggi piú vecchi di "N" giorni dal proprio account GMail.
- // Script Realized by NeoMod
- // Per funzionare correttamente lo script necessita di:
- // - Un account GMail su cui siano stati correttamente configurati dei filtri per la classificaizone dei messaggi
- // - Uno (o piú) filtri correttamente attivati che applicano una etichetta specifica ai messaggi da eliminare automaticamente
- // - Una (o piú) etichette, applicate automaticamente dai filtri sopra indicati, che contengano i messaggi da eliminare automaticamente.
- // N.B. Questo script sposterá automaticamente i messaggi nel cestino: GMail provvederá a svuotare il cestino ogni 30 giorni.
- // GMail e Google Script non supportano infatti l'eliminazione diretta di un messaggio senza passare dal cestino, e non é possibile istruire uno script affinché svuoti automaticamente il cestino.
- // Queste limitazioni sono imposte da Google, non dallo script.
- function ripulisciMail() { // suggerisco di rinominare la funzione in base all'etichetta applicata ai messaggi da eliminare, ad esempio ripulisciPromozioni oppure ripulisciOfferteGlamoo
- var delayDays = 2 // Inserire il numero di giorni passati i quali i messaggi verrano spostati nel cestino. (leggi: i messaggi piú vecchi di N giorni vengono eliminati)
- var maxDate = new Date();
- maxDate.setDate(maxDate.getDate()-delayDays);
- var label = GmailApp.getUserLabelByName("ETICHETTA"); // Inserire l'etichetta dei messaggi da filtrare. Gli apici vanno mantenuti. In caso di etichette nidificate la struttura é "ETICHETTA MADRE/EITCHETTA NIDIFICATA".
- var threads = label.getThreads();
- for (var i = 0; i < threads.length; i++) {
- if (threads[i].getLastMessageDate()<maxDate)
- {
- threads[i].moveToTrash();
- }
- }
- }
- // Questo script svolge le medesime funzioni del precedente ma é da preferire nel caso in cui si debbano filtrare etichette con oltre 100 email associate.
- // Eseguendo lo script su un batch di 100 messaggi alla volta si evita di incorrere nell'errore "tempo di risposta esaurito" da parte del server.
- // Tutte le altre considerazioni fatte in precedenza restano valide.
- // Script Realized by NeoMod
- // N.B. É possibile anche utilizzare questo script per la "prima pulizia" di una etichetta con associati numerosi messaggi e successivamente utilizzare lo script precedenze per le normali operazioni.
- function ripulisciMailBatch() {
- var batchSize = 100 // Inserire il numero di messaggi che si vuole vengano processati ad ogni iterazione dello script. Suggerisco di lasciare il valore inalterato.
- var threads = GmailApp.search('label:"ETICHETTA" older_than:Nd'); // Inserire l'etichetta dei messaggi da filtrare. Sostituire alla lettera N il valore numerico dei giorni passati i quali i messaggi saranno eliminati.
- for (j = 0; j < threads.length; j+=batchSize) {
- GmailApp.moveThreadsToTrash(threads.slice(j, j+batchSize));
- }
- }
- // Questo script svolge le medesime funzioni del precedente ma é da preferire nel caso in cui si debbano molte etichette con oltre 100 email associate.
- // Eseguendo lo script su un batch di 100 messaggi alla volta si evita di incorrere nell'errore "tempo di risposta esaurito" da parte del server.
- // Tutte le altre considerazioni fatte in precedenza restano valide.
- // Script Realized by NeoMod
- // N.B. É possibile anche utilizzare questo script per la "prima pulizia" di una etichetta con associati numerosi messaggi e successivamente utilizzare lo script precedenze per le normali operazioni.
- function multipleLabels() {
- var myLabels = {'"etichetta 1"': "Nd", '"etichetta 2"': "Nd"}; // Inserire l'etichetta dei messaggi da filtrare. Sostituire alla lettera N il valore numerico dei giorni passati i quali i messaggi saranno eliminati.
- var batchSize = 100; // Eseguendo lo script su un batch di 100 messaggi alla volta si evita di incorrere nell'errore "tempo di risposta esaurito" da parte del server.
- for(aLabel in myLabels)
- {
- var threads = GmailApp.search('label:'+aLabel+' older_than:'+myLabels[aLabel]+'');
- for (j = 0; j < threads.length; j+=batchSize) {
- GmailApp.moveThreadsToTrash(threads.slice(j, j+batchSize));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement