Automação do Gmail: 8 Scripts do Google Úteis para Automatizar Seu Gmail

Automatizar Gmail Destacado

O Gmail, por si só, já é um cliente de e-mail muito poderoso. Com a ajuda de filtros, você pode configurar automações para organizar melhor sua caixa de entrada. No entanto, para usuários avançados, o recurso de filtro não é suficiente em comparação com a escrita de scripts personalizados. Esses oito scripts do Google podem automatizar ainda mais o seu Gmail.

Dica: experimente outra dica fácil do Gmail: configure o encaminhamento automático no Gmail.

Índice

    1. Excluir e-mail automaticamente após X dias
    1. Arquivar todos os e-mails antigos
    1. Receber notificações por SMS para e-mails importantes
    1. Criar um resumo dos seus e-mails
    1. Salvar e-mails como PDFs no Google Drive
    1. Enviar e-mails de acompanhamento automaticamente
    1. Marcar e-mails de acordo com palavras-chave no assunto
    1. Encaminhar certos e-mails para vários outros endereços
  • Perguntas Frequentes

1. Excluir e-mail automaticamente após X dias

Muito frequentemente, após ler um e-mail, nós simplesmente o mantemos na nossa caixa de entrada, independentemente de quão útil ele seja. Agora que o Google impôs um limite de espaço, você pode querer limpar sua caixa de entrada e se livrar desses e-mails inúteis. O seguinte script pode verificar e-mails com o rótulo “Excluir-me” e excluí-los após “X” dias.

  1. Certifique-se de que você está conectado à sua conta do Google, vá para Google Scripts e crie um novo projeto.

Automatizar Gmail Novo Projeto

  1. Cole o seguinte script e salve-o. Você pode alterar o número de dias (a variável delayDays) que se passará antes que ele exclua as mensagens de e-mail da sua caixa de entrada.
function auto_delete_mails(){  
  var label = GmailApp.getUserLabelByName("Excluir-me");  
if(label == null){  
    GmailApp.createLabel('Excluir-me');  
}  
else{  
    var delayDays =2; // Insira # de dias antes que as mensagens sejam movidas para a lixeira     
    var maxDate =new Date();  
    maxDate.setDate(maxDate.getDate()-delayDays);  
    var threads = label.getThreads();  
for(var i =0; i < threads.length; i++){  
if(threads[i].getLastMessageDate()
  1. Crie um novo gatilho para executar seu script em um cronograma. Abra “o ícone de cronograma no menu à esquerda -> Gatilhos -> Adicionar Gatilho.”

Automatizar Gmail Gatilhos

  1. Personalize as configurações do seu gatilho para executar o script a cada hora (ou com a frequência que desejar), depois role para baixo e clique em “Salvar.”

Automatizar Gmail Adicionar Gatilho

Uma vez que este script é executado, ele criará um novo rótulo, “Excluir-me”, na sua conta do Gmail. Marque seus e-mails indesejados com esse rótulo, e eles serão excluídos após o número de dias especificado no seu script.

Dica: Se seu e-mail parece estar fora de controle, leia nossa análise do SaneBox e veja se ele pode ajudá-lo a lidar com seu e-mail.

2. Arquivar todos os e-mails antigos

Se você deseja uma opção menos perigosa do que excluir e-mails, pode criar um script para arquivar todos os seus e-mails antigos seguindo os passos abaixo.

  1. Crie um novo script do Google com o seguinte código:
function archiveOldEmails(){  
  // Obter todos os threads na caixa de entrada  
  var threads = GmailApp.getInboxThreads();  
  
  // Loop por todos os threads  
for(var i =0; i < threads.length; i++){  
    var thread= threads[i];  
    var messages =thread.getMessages();  
  
    // Loop por todas as mensagens no thread  
for(var j =0; j < messages.length; j++){  
      var message = messages[j];  
      var age =(new Date() - message.getDate()) / (1000 * 60 * 60 * 24);  
  
      // Se a mensagem tiver mais de 30 dias, arquive-a  
if(age >30){  
thread.moveToArchive();  
}  
}  
}  
}
  1. Crie um gatilho (como mostrado acima) para executar o script todos os dias.

Na hora escolhida, o script será executado e moverá os e-mails da sua caixa de entrada para o arquivo. Esses e-mails arquivados ainda estarão disponíveis na seção “Todos os E-mails”.

Bom saber: se você não se importa com os e-mails na sua caixa de entrada e só quer limpar tudo rapidamente, este guia mostra como marcar todos os seus e-mails não lidos como lidos e excluí-los.

3. Receber notificações por SMS para e-mails importantes

Este script do Google usa o recurso de SMS do Google Calendar para te enviar um SMS quando você receber um e-mail importante.

  1. Crie um novo script do Google com o seguinte código:
function Gmail_send_sms(){  
  var label = GmailApp.getUserLabelByName("Enviar Mensagem");  
if(label == null){  
    GmailApp.createLabel('Enviar Mensagem');  
}  
else{  
    var threads = label.getThreads();  
    var now =new Date().getTime();  
for(var i =0; i < threads.length; i++){  
      var message = threads[i].getMessages()[0];  
      var from= message.getFrom();  
      var subject = message.getSubject();  
      CalendarApp.createEvent(subject,new Date(now+60000),new Date(now+60000),{location: from}).addSmsReminder(0);  
}  
    label.removeFromThreads(threads);  
}  
}
  1. Salve-o e crie um gatilho para que ele seja executado a cada cinco minutos.
  2. Crie um novo filtro no Gmail que adiciona automaticamente o rótulo “Enviar Mensagem” aos seus e-mails recebidos escolhidos. No Gmail, clique no ícone de Opções de Pesquisa na barra de busca superior.

Automatizar Gmail 2 Opções da Barra de Pesquisa 1

  1. Personalize os critérios para as notificações por SMS que vão te alertar que você tem e-mails importantes na sua caixa de entrada, depois clique em “Criar filtro.”

Automatizar Gmail 2 Filtros de Pesquisa

  1. Marque “Aplicar o rótulo”, escolha “Enviar Mensagem” e clique em “Criar filtro.”

Automatizar Gmail 2 Filtro Enviar Mensagem

O script irá escanear sua caixa de entrada a cada cinco minutos. Quando detectar um e-mail com o rótulo “Enviar Mensagem”, criará imediatamente um evento no Google Calendar, que acionará o SMS.

Dica: você também pode enviar mensagens de texto SMS do seu PC.

4. Criar um resumo dos seus e-mails

Em vez de ler todos os seus e-mails individualmente, você pode escrever um script para criar um único resumo de seus e-mails não lidos.

  1. Crie um novo Script do Google com o seguinte código:
function createEmailSummary(){  
    // Buscar e-mails não lidos  
    var threads = GmailApp.search("is:unread");  
    var summary ="E-mails Não Lidos:\n";  
for(var i =0; i < threads.length; i++){  
      var messages = threads[i].getMessages();  
for(var j =0; j < messages.length; j++){  
        var message = messages[j];  
        summary += message.getFrom() + ": " + message.getSubject() + "\n";  
}  
}  
  
    // Buscar e-mails com palavras-chave específicas no assunto  
    var threads = GmailApp.search("subject:(importante reunião)");  
    summary +="\nE-mails com a palavra-chave 'importante reunião' no assunto:\n";  
for(var i =0; i < threads.length; i++){  
      var messages = threads[i].getMessages();  
for(var j =0; j < messages.length; j++){  
        var message = messages[j];  
        summary += message.getFrom() + ": " + message.getSubject() + "\n";  
}  
}  
  
    // Você pode adicionar mais critérios de busca aqui  
    // ...  
  
    // Enviar o resumo como um e-mail  
    GmailApp.sendEmail("[email protected]","Resumo de E-mail", summary);  
}
  1. Altere “[email protected]” para o seu e-mail.
  2. Crie um novo gatilho para executar o script todos os dias.

Automatizar Gmail 4 Exemplo de Resumo

Quando o script for executado, ele enviará um e-mail que inclui quantos de cada tipo de e-mail você ainda não leu. O script acima é um bom ponto de partida – ele conta o número de e-mails com “importante reunião” no assunto. Você pode ajustar o script para contar os critérios de busca desejados.

5. Salvar e-mail como PDFs no Google Drive

Se você tem um e-mail que deseja arquivar no Google Drive, pode usar um script do Google para salvá-lo como um PDF na sua conta do Google Drive. O seguinte script salvará todas as mensagens em um thread de e-mail como um único arquivo PDF no seu Google Drive. Se o e-mail tiver anexos, ele criará uma pasta e armazenará as mensagens e anexos dentro.

  1. Crie um novo script do Google com o seguinte código:
function save_Gmail_as_PDF(){  
  // Obter o rótulo "Salvar Como PDF" ou criá-lo se não existir  
  var label = GmailApp.getUserLabelByName("Salvar Como PDF");    
  if(label == null){  
    label = GmailApp.createLabel('Salvar Como PDF');  
  }  
  
  // Obter os threads com o rótulo  
  var threads = label.getThreads();    
  for (var i = 0; i < threads.length; i++) {      
    var messages = threads[i].getMessages();  
    var subject = messages[0].getSubject();  
    var bodys = [];  
    // Loop por todas as mensagens no thread  
    for(var j = 0; j < messages.length; j++){    
      var message = messages[j];  
      bodys.push({  
        body: message.getPlainBody(),  
        from: message.getFrom(),  
      });  
      var attachments  = message.getAttachments();  
      var temp_attach = message.getAttachments();  
      if(temp_attach.length > 0){  
        for(var k =0; k < temp_attach.length; k++){  
          attachments.push(temp_attach[k]);  
        }  
      }  
    }  
    // Criar um documento do Google Docs a partir do corpo da mensagem  
    var bodyDoc = DocumentApp.create(subject);  
    var bodyDocId = bodyDoc.getId();  
    var bodyDocFile = DriveApp.getFileById(bodyDocId);  
    var bodyDocBody = bodyDoc.getBody();  
    bodyDocBody.setText(bodys.map(obj => `De: ${obj.from}\n${obj.body}`).join('\n\n'));  
    bodyDoc.saveAndClose();  
  
    // Converter o documento do Google Docs para um PDF  
    var blob = bodyDocFile.getAs('application/pdf');  
    var pdfFile = DriveApp.createFile(blob);  
  
    // Se houver anexos  
    if(attachments.length > 0){  
      // Criar uma pasta no Drive com o assunto da mensagem  
      var folder = DriveApp.createFolder(subject);  
      for (var j = 0; j < attachments.length; j++) {  
        folder.createFile(attachments[j]);  
      }  
      // Adicionar o arquivo PDF do corpo da mensagem à pasta  
      folder.createFile(pdfFile);  
    }  
    // Remover o documento do Google Docs do Google Drive  
    DriveApp.getFileById(bodyDocId).setTrashed(true);  
    // Remover o rótulo do thread  
    label.removeFromThread(threads[i]);  
  }  
}
  1. Salve-o e defina um gatilho para que ele seja executado em intervalos regulares.

Automatizar Gmail 5 E-mail Salvo como Pdf

Quando você quiser salvar um e-mail e seus anexos no Google Drive, basta marcá-lo com o rótulo “Salvar como PDF.” O corpo de cada e-mail e o remetente, em cada thread, serão mostrados em ordem, começando com o mais antigo.

Bom saber: não tem certeza de quantos arquivos você tem na sua pasta do Google Drive? Este guia mostra como descobrir.

6. Enviar e-mails de acompanhamento automaticamente

Você pode não receber sempre uma resposta rápida aos seus e-mails. Para resolver esse problema, você pode enviar um e-mail de acompanhamento para lembrar os destinatários do e-mail. Em vez de escrever cada acompanhamento manualmente, você pode enviá-los automaticamente com um script!

  1. Crie um novo script do Google com o seguinte código:
function sendFollowupEmails(){  
  const startDate =new Date('2023-01-01');  
  
  const daysAgo =3;  
  var dateInPast =new Date();  
  dateInPast.setDate(dateInPast.getDate() - daysAgo);  
  
  var threads = GmailApp.search("is:sent before:" + dateInPast.toLocaleDateString() + " after:" + startDate.toLocaleDateString());  
  
for(var i =0; i < threads.length; i++){  
    var conversation = threads[i];  
  
    var foundResponse = false;  
    // Se um thread enviado tiver mais de 1 e-mail, não precisamos de acompanhamento  
    // porque já enviamos um acompanhamento ou eles responderam.  
    if (conversation.getMessages().length > 1) {  
      foundResponse = true;  
    }  
  
    if (!foundResponse) {  
      var body = "Olá, só queria acompanhar meu e-mail anterior. Se não receber resposta, assumirei que você não está interessado. \n\nAtenciosamente,\n[Seu Nome]";  
      conversation.replyAll(body);  
    }  
  }  
}
  1. Personalize algumas coisas neste script:
  • Mude startDate para um tempo mais próximo do dia atual para não ressuscitar threads muito antigas.
  • Altere daysAgo para personalizar quantos dias você deseja que um e-mail tenha antes de enviar um acompanhamento.
  • Mude [Seu Nome] para o seu nome.
  1. Salve-o e defina um gatilho para executar a cada sete dias.

Continue enviando e-mails normalmente, e o script lidará automaticamente com os acompanhamentos.

7. Marcar e-mails de acordo com palavras-chave no assunto

Se você é inundado de e-mails, mas não quer excluir a maioria deles, pode usar este script para marcar e organizar com base no conteúdo deles.

  1. Crie um novo script do Google com o seguinte código:
function categorizeEmails(){  
  const emailsToGet =50;  
  var keywords ={  
"promo": "Promoções",  
"offer": "Promoções",  
"discount": "Promoções",  
"newsletter": "Boletins",  
"action": "A Fazer",  
"required": "A Fazer",  
"shipped": "Pedidos",  
"delivered": "Pedidos",  
"receipt": "Pedidos",  
"invoice": "Pedidos"  
};  
  
  var threads = GmailApp.getInboxThreads(0, emailsToGet);  
  
for(var i =0; i < threads.length; i++){  
    var subject = threads[i].getFirstMessageSubject().toLowerCase();  
    var labels = GmailApp.getUserLabels();  
    var foundLabel = false;  
  
for(var keyword in keywords){  
if(subject.indexOf(keyword)!== -1){  
for(var j =0; j < labels.length; j++){  
if(labels[j].getName()=== keywords[keyword]){  
            threads[i].addLabel(labels[j]);  
            foundLabel = true;  
break;  
}  
}  
  
if(!foundLabel){  
          GmailApp.createLabel(keywords[keyword]);  
          threads[i].addLabel(GmailApp.getUserLabelByName(keywords[keyword]));  
}  
  
break;  
}  
}  
}  
}
  1. Você pode personalizar o número de e-mails afetados com a variável emailsToGet ou as palavras-chave e rótulos com a variável keywords.
  2. Salve o script e defina um gatilho para executar a cada alguns minutos ou horas.

Automatizar Gmail 7 E-mails Marcados por Assunto

Isso permite que você se mantenha em dia ao visualizar apenas e-mails com um rótulo específico. Este script funciona bem na maioria dos seus e-mails, salvando você de excluir simplesmente.

Dica: configure várias assinaturas no Gmail e troque rapidamente entre elas para públicos diferentes.

8. Encaminhar certos e-mails para vários outros endereços

Embora o Gmail tenha uma maneira integrada de encaminhar e-mails para outro endereço de e-mail, ele não consegue facilmente encaminhar e-mails com um determinado critério para vários endereços de e-mail, mas este script pode.

  1. Crie um novo script com o seguinte código:
function emailForwarding(){  
  const emailsToGet =50;  
  var criteria =[  
{  
      sender: "[email protected]",  
      subjectContains: "invoice",  
      forwardTo: ["[email protected]","[email protected]"]  
},  
{  
      sender: "[email protected]",  
      subjectContains: "urgent",  
      forwardTo: ["[email protected]","[email protected]"]  
}  
];  
  
  var label = GmailApp.getUserLabelByName("Encaminhado");  
if(!label){  
    label = GmailApp.createLabel("Encaminhado");  
}  
  
  var threads = GmailApp.search("is:inbox",0, emailsToGet);  
for(var i =0; i < threads.length; i++){  
    var messages = threads[i].getMessages();  
    console.log('id do thread:', threads[i].getId());  
for(var j =0; j < messages.length; j++){  
  
      var message = messages[j];  
      var sender = message.getFrom();  
      var subject = message.getSubject().toLowerCase();  
      console.log('remetente', sender,'assunto', subject);  
for(var k =0; k < criteria.length; k++){  
        var rule = criteria[k];  
if(sender.indexOf(rule.sender)!= -1 && subject.indexOf(rule.subjectContains)!= -1){  
          var recipient = rule.forwardTo.join(",");  
          GmailApp.sendEmail(recipient, subject, message.getPlainBody(),{cc: sender});  
          threads[i].addLabel(label);  
}  
}  
}  
}  
}
  1. Personalize os critérios como necessário.
  2. Crie um gatilho que executará o script a cada poucos minutos ou horas.

Seu Gmail encaminhará automaticamente e-mails que atendam aos seus critérios para dois ou mais endereços de e-mail.

Bom saber: o Gmail possui um método integrado para responder automaticamente a e-mails se você estiver de férias ou fora do escritório.

Perguntas Frequentes

O Google Apps Script é gratuito para usar?

Sim, o Google Apps Script é gratuito para usar desde que você tenha uma conta do Gmail. No entanto, existem dezenas de cotas e limitações sobre seu uso. O Google pode mudar essas a qualquer momento, mas no momento da redação, eles incluem quase 40 recursos, como documentos criados, e-mails lidos/escritos, planilhas criadas e tempo total de execução de gatilhos. Contas gratuitas têm um limite muito baixo, enquanto o Google Workspace tem um limite muito maior.

Posso usar o Google Apps Script para acessar dados de outros serviços?

Sim, o Google Apps Script não se limita a trabalhar com serviços do Google. Você pode acessar dados de serviços externos não Google na internet (por exemplo, a API do Pokémon) usando classes integradas como o UrlFetchApp assim:

var response = UrlFetchApp.fetch("https://pokeapi.co/api/v2/pokemon/ditto"); Logger.log(response.getContentText()); // Todos os detalhes do Ditto serão registrados

O que faço se eu receber erros no meu Google Apps Script?

Você pode depurar seu código para identificar e corrigir o erro. Felizmente, o Google Apps Script tem um depurador integrado que você pode usar para solucionar seu código. Para usá-lo, basta abrir o editor de scripts e clicar em Depurar. A partir daí, você pode definir pontos de interrupção, percorrer seu código e inspecionar variáveis para ajudar a identificar quaisquer problemas.

Crédito da imagem: Pexels. Todas as capturas de tela por Brandon Li.