Gmail automaticamente em 30 dias, exclui todos os e-mails enviados para a lixeira pelo usuário. Existe alguma maneira de alterar esse comportamento padrão para 7 dias?
Resposta
Não, não há como alterar o comportamento padrão da lixeira do Gmail. Isso inclui diminuir ou prolongar a duração .
Você pode criar sua própria lixeira que faz algo semelhante, mas é meio chato e não faz o que você realmente quer. Você teria que adicionar um rótulo personalizado além de clicar no botão excluir todas as vezes (através do botão “Rótulos” e, em seguida, do seu rótulo de lixeira personalizado).
Então você “teria que criar um filtro (uma vez; em” Configurações “->” Filtros e endereços bloqueados “->” Criar novo filtro “) que” contenha as palavras “label:custom-trash older_than:7d
com a ação Delete it
(“Criar filtro com esta pesquisa” -> “Ok” -> “Excluir”).
Mas isso apenas o envia para a lixeira do Gmail.
Para automatizar a exclusão da lixeira neste ponto, seria necessário um script de usuário para abrir a pasta da lixeira (usando document.querySelector("[href="https://mail.google.com/mail/u/0/#trash"]").click()
), clicando no botão “Esvaziar lixeira agora” (usando document.querySelector(".ya span").click()
) e clicando no botão “Ok” (usando document.querySelector(".Kj-JD-Jl button").click()
). Mesmo assim, você teria que executá-lo com a página aberta, o que torna o filtro inútil …
TL; DR : Não, não é possível.
Resposta
Sim, é possível, mas requer que você crie um Script do Google Apps personalizado. Aqui está como fazer isso, em poucas palavras:
- Se você estiver conectado ao Gmail, você pode ir para https://script.google.com/ e crie um novo projeto de script.
- Abra esse projeto e crie um novo arquivo de script. Coloque seu script nele (veja um exemplo abaixo)
- Você terá que ir ao menu Recursos, selecionar o submenu “Serviços avançados do Google” e habilitar a opção “API do Gmail”.
- O painel de serviços avançados do Google informará que “Esses serviços também devem ser ativados no painel de API do Google Cloud Platform.” Portanto, você terá que seguir esse link e habilitar essa API também.
- Finalmente, você terá que criar pelo menos um gatilho que chamará seu script em qualquer intervalo que você escolher (de hora em hora, diariamente, etc.) ou com base em algum outro evento que você escolher.
Aqui está um script do Google Apps para excluir e-mails indesejados de vários marcadores (pastas), que criei com base em outras fontes online. Este código é fornecido sem qualquer garantia – use por sua própria conta e risco. O uso indevido da função Gmail.Users.Threads.remove () pode resultar na perda permanente de e-mails importantes .
/* 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]"); }
Resposta
Aqui está um Script do Google Apps que criei e executo diariamente. Você pode personalizar a lixeira do Gmail para reter e-mails pelo tempo que desejar.
//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"); } }