Gmail automaticamente entro 30 giorni, elimina tutte le email cestinate dallutente. Cè un modo per modificare questo comportamento predefinito in 7 giorni?
Risposta
No, non è possibile modificare il comportamento predefinito del cestino di Gmail. Ciò include la riduzione o il prolungamento della durata .
Puoi creare il tuo cestino della spazzatura che fa qualcosa di simile, ma è un po una seccatura e non fa davvero quello che vuoi. Dovresti aggiungere unetichetta personalizzata diverso dal fare clic sul pulsante Elimina ogni volta (tramite il pulsante “Etichette”, quindi letichetta del cestino personalizzata).
Quindi devi creare un filtro (una volta; in “Impostazioni” -> “Filtri e indirizzi bloccati” -> “Crea nuovo filtro”) che “contiene le parole” label:custom-trash older_than:7d
con lazione Delete it
(“Crea filtro con questa ricerca” -> “OK” -> “Elimina”).
Ma questo lo invia solo al cestino di Gmail.
Per automatizzare leliminazione del cestino a questo punto sarebbe necessario uno script utente per aprire la cartella del cestino (utilizzando document.querySelector("[href="https://mail.google.com/mail/u/0/#trash"]").click()
), facendo clic sul pulsante “Svuota cestino adesso” (utilizzando document.querySelector(".ya span").click()
), quindi facendo clic sul pulsante “OK” (utilizzando document.querySelector(".Kj-JD-Jl button").click()
). Ma anche se dovresti eseguirlo con la pagina aperta, il che rende il filtro inutile …
TL; DR : No, non è possibile.
Risposta
Sì, è possibile ma richiede la creazione di uno script di Google Apps personalizzato. Ecco come fare, in poche parole:
- Se hai effettuato laccesso a Gmail, puoi andare a https://script.google.com/ e crea un nuovo progetto di script.
- Apri il progetto e crea un nuovo file di script. Inserisci il tuo script in esso (vedi sotto per un esempio)
- Dovrai andare al menu Risorse, quindi selezionare il sottomenu “Servizi Google avanzati”, quindi abilitare lopzione “API Gmail”.
- Il riquadro Servizi Google avanzati ti dirà che “Questi servizi devono essere abilitati anche nella dashboard dellAPI di Google Cloud Platform”. Quindi dovrai seguire quel link e abilitare anche quellAPI.
- Infine, dovrai creare almeno un trigger che chiamerà il tuo script a qualsiasi intervallo tu scelga (ogni ora, ogni giorno, ecc.) o in base a un altro evento scelto da te.
Ecco uno script di Google Apps per eliminare i messaggi di posta elettronica indesiderati da varie etichette (cartelle), che ho creato in base ad altre fonti online. Questo codice viene fornito senza alcuna garanzia: utilizzalo a tuo rischio. Luso improprio della funzione Gmail.Users.Threads.remove () potrebbe causare la perdita permanente di email importanti .
/* Delete all emails from the given email address in the given label. */ function deleteEmailsFrom(fromEmailAddress, inLabel) { var queryEmailsToDelete = "from:" + fromEmailAddress + " in:" + inLabel; var permanentlyDeleteThreads = true; var pageToken; do { var threadList = Gmail.Users.Threads.list("me", { q: queryEmailsToDelete, pageToken: pageToken }); if (threadList.threads && threadList.threads.length > 0) { threadList.threads.forEach(function(thread) { Logger.log("About to delete this email thread: id: %s, snippet: %s", thread.id, thread.snippet); if (permanentlyDeleteThreads) { Gmail.Users.Threads.remove("me", thread.id); Logger.log("Deleted this email thread: id: %s, snippet: %s", thread.id, thread.snippet); } }); } pageToken = threadList.nextPageToken; } while (pageToken); } /* Delete all emails from the given email address in both Spam and Trash folders. */ function deleteSpamOrTrashEmailsFromAddress(fromEmailAddress) { deleteEmailsFrom(fromEmailAddress, "trash"); deleteEmailsFrom(fromEmailAddress, "spam"); } function deleteUnwantedSpamOrTrashEmails() { deleteSpamOrTrashEmailsFromAddress("[email protected]"); deleteSpamOrTrashEmailsFromAddress("[email protected]"); deleteSpamOrTrashEmailsFromAddress("[email protected]"); }
Risposta
Ecco uno script di Google Apps che ho creato e che viene eseguito quotidianamente. Puoi personalizzare il cestino di Gmail per conservare le email per tutto il tempo che desideri.
//INSTRUCTIONS // 1. Create two lables in Gmail: SYSTEM/reset & SYSTEM/moved // 2. Set how long you want to retain mail in trash on lines 31-34 (5m = 5 months) // 3. Setup a trigger to run this script at least as many times a day as emails you expect to accumulate in your trash over the time you selected (1 trigger a day = preserve up to 1000 emails in trash; 2 triggers a day = preserve up to 2000 emails in trash) //HOW IT WORKS // Deleted Emails are moved out of your trash and immediately back in, thus restarting the 30 day deletion time // Labels are used to keep track of which emails have been moved //WHY DAILY TRIGGERS ARE NEEEDED // Google limits script to edit up to 100 emails at a time function extendTrashTime() { function move(moved_label, empty_threads) { GmailApp.moveThreadsToArchive(empty_threads); GmailApp.moveThreadsToTrash(empty_threads); moved_label.addToThreads(empty_threads); } function reset(reset_label, moved_label, moved_threads) { reset_label.addToThreads(moved_threads); moved_label.removeFromThreads(moved_threads); } function empty(reset_label, reset_threads) { reset_label.removeFromThreads(reset_threads); } let moved_label = GmailApp.getUserLabelByName("SYSTEM/moved"); let reset_label = GmailApp.getUserLabelByName("SYSTEM/reset"); // CHANGE TIME TO RETAIN MAIL IN THE THREE LINES BELOW let moved_threads = GmailApp.search("in:trash newer_than:5m -label:SYSTEM/ignore label:SYSTEM/moved", 0, 100); let reset_threads = GmailApp.search("in:trash newer_than:5m -label:SYSTEM/ignore label:SYSTEM/reset", 0, 100); let empty_threads = GmailApp.search("in:trash newer_than:5m -label:SYSTEM/ignore -label:SYSTEM/moved -label:SYSTEM/reset", 0, 100); let moved_total = moved_threads.length; let reset_total = reset_threads.length; let empty_total = empty_threads.length; Logger.log("moved_total", moved_total); Logger.log("reset_total", reset_total); Logger.log("empty_total", empty_total); if (moved_total >= 0 && reset_total === 0 && empty_total > 0) { Logger.log("Phase 1: move emails & label with moved"); move(moved_label, empty_threads); } else if (moved_total > 0 && reset_total >= 0) { Logger.log("Phase 2: remove moved label and replace with reset label"); reset(reset_label, moved_label, moved_threads); } else if (moved_total === 0 && reset_total > 0) { Logger.log("Phase 3: remove reset label"); empty(reset_label, reset_threads); } else { Logger.log("No results for empty_threads query"); } }