Como modificar esta postagem existente de script e / ou etapas para que funcione para esvaziar automaticamente a Lixeira do Gmail?

Nov 25 2020

Eu encontrei este post sobre como fazer o acima, mas não parece funcionar?

Aqui está a mensagem de erro

Nov 25, 2020, 3:52:51 PM    Error   GoogleJsonResponseException: API call to gmail.users.threads.delete failed with error: Delegation denied for [email protected]
    at [unknown function](Code:29:33)
    at removeMyTest2(Code:23:28)

Vamos para https://script.google.com

Em seguida, crie um novo projeto e cole o seguinte nele:

function removeMyTest2() {

var mymail = "[email protected]";

var mylabel = "trash";

var permanentlyRemoveMyLabel = true;

var pageToken;

do {

    var threadList = Gmail.Users.Threads.list('me', {

    q: 'in:' + mylabel,

    pageToken: pageToken

    });

    if (threadList.threads && threadList.threads.length > 0) {

        threadList.threads.forEach(function(thread) {

        Logger.log('id: %s snippet: %s', thread.id, thread.snippet);

        if (permanentlyRemoveMyLabel) {

            Gmail.Users.Threads.remove(mymail, thread.id);

            Logger.log('id: %s snippet: %s REMOVED', thread.id, thread.snippet);

        }

    });

   }

   pageToken = threadList.nextPageToken;

   } while (pageToken);

}

Se você tentar e executar o script como está, ocorrerá um erro.

Em seguida, clique em Recursos e vá para Serviços avançados do Google.

Role para baixo até Gmail API e ative-o.

Em seguida, clique no link Google Cloud Platform na mesma janela que apareceu onde você ativou a API do Gmail.

Em seguida, clique em Ativar serviços e API e pesquise por Gmail. Clique em Gmail e ative-o.

Em seguida, volte para a tela do script e clique no menu Editar e vá até os gatilhos do projeto atual.

Defina um gatilho para executar o script a cada minuto / hora ou em qualquer intervalo de tempo em que deseja que o script execute e esvazie a lixeira.

Lembre-se de que você pode excluir de IN: TRASH IN: SPAM ou de qualquer outro rótulo que desejar. Isso não excluirá lembretes e a exclusão é final. Você não pode recuperar nenhum dos e-mails.

Respostas

1 Rubén Nov 26 2020 at 05:16

Atenção

O código da referida resposta apaga permanentemente as mensagens da lixeira do Gmail. Não devemos copiar e executar código que não entendemos.


É muito provável que a mensagem de erro referida tenha ocorrido porque a seguinte linha de código não foi editada:

var mymail = "[email protected]";

Substituir "[email protected]"porSession.getActiveUser().getEmail()

Recurso

  • https://developers.google.com/apps-script/reference/base/session#getActiveUser()

O conteúdo original da referida resposta era obsoleto. Foi editado por mim há alguns momentos.