Advertisement
NeoMod

GMail AutoClean Riepilogo Script

Nov 18th, 2015
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Questo script consente di automatizzare il processo di eliminazione dei messaggi piú vecchi di "N" giorni dal proprio account GMail.
  2. // Script Realized by NeoMod
  3. // Per funzionare correttamente lo script necessita di:
  4. // - Un account GMail su cui siano stati correttamente configurati dei filtri per la classificaizone dei messaggi
  5. // - Uno (o piú) filtri correttamente attivati che applicano una etichetta specifica ai messaggi da eliminare automaticamente
  6. // - Una (o piú) etichette, applicate automaticamente dai filtri sopra indicati, che contengano i messaggi da eliminare automaticamente.
  7.  
  8. // N.B. Questo script sposterá automaticamente i messaggi nel cestino: GMail provvederá a svuotare il cestino ogni 30 giorni.
  9. //      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.
  10. //      Queste limitazioni sono imposte da Google, non dallo script.
  11.  
  12. function ripulisciMail() { // suggerisco di rinominare la funzione in base all'etichetta applicata ai messaggi da eliminare, ad esempio ripulisciPromozioni oppure ripulisciOfferteGlamoo
  13. 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)
  14.  
  15. var maxDate = new Date();
  16. maxDate.setDate(maxDate.getDate()-delayDays);
  17. 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".
  18. var threads = label.getThreads();
  19. for (var i = 0; i < threads.length; i++) {
  20.   if (threads[i].getLastMessageDate()<maxDate)
  21.   {
  22.     threads[i].moveToTrash();
  23.   }
  24. }
  25. }
  26.  
  27. // Questo script svolge le medesime funzioni del precedente ma é da preferire nel caso in cui si debbano filtrare etichette con oltre 100 email associate.
  28. // 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.
  29. // Tutte le altre considerazioni fatte in precedenza restano valide.
  30. // Script Realized by NeoMod
  31.  
  32. // 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.
  33.  
  34. function ripulisciMailBatch() {
  35.   var batchSize = 100 // Inserire il numero di messaggi che si vuole vengano processati ad ogni iterazione dello script. Suggerisco di lasciare il valore inalterato.
  36.   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.
  37.   for (j = 0; j < threads.length; j+=batchSize) {
  38.     GmailApp.moveThreadsToTrash(threads.slice(j, j+batchSize));
  39.   }
  40. }
  41.  
  42. // Questo script svolge le medesime funzioni del precedente ma é da preferire nel caso in cui si debbano molte etichette con oltre 100 email associate.
  43. // 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.
  44. // Tutte le altre considerazioni fatte in precedenza restano valide.
  45. // Script Realized by NeoMod
  46.  
  47. // 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.
  48.  
  49. function multipleLabels() {
  50.   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.
  51.   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.
  52.   for(aLabel in myLabels)
  53.   {
  54.     var threads = GmailApp.search('label:'+aLabel+' older_than:'+myLabels[aLabel]+'');
  55.     for (j = 0; j < threads.length; j+=batchSize) {
  56.       GmailApp.moveThreadsToTrash(threads.slice(j, j+batchSize));
  57.     }
  58.   }  
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement