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

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
- Excluir e-mail automaticamente após X dias
- Arquivar todos os e-mails antigos
- Receber notificações por SMS para e-mails importantes
- Criar um resumo dos seus e-mails
- Salvar e-mails como PDFs no Google Drive
- Enviar e-mails de acompanhamento automaticamente
- Marcar e-mails de acordo com palavras-chave no assunto
- 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.
- Certifique-se de que você está conectado à sua conta do Google, vá para Google Scripts e crie um novo projeto.

- 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()- Crie um novo gatilho para executar seu script em um cronograma. Abra “o ícone de cronograma no menu à esquerda -> Gatilhos -> Adicionar Gatilho.”

- 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.”

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.
- 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();
}
}
}
}- 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.
- 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);
}
}- Salve-o e crie um gatilho para que ele seja executado a cada cinco minutos.
- 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.

- 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.”

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

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.
- 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);
}- Altere “[email protected]” para o seu e-mail.
- Crie um novo gatilho para executar o script todos os dias.

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.
- 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]);
}
}- Salve-o e defina um gatilho para que ele seja executado em intervalos regulares.

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!
- 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);
}
}
}- Personalize algumas coisas neste script:
- Mude
startDatepara um tempo mais próximo do dia atual para não ressuscitar threads muito antigas. - Altere
daysAgopara personalizar quantos dias você deseja que um e-mail tenha antes de enviar um acompanhamento. - Mude
[Seu Nome]para o seu nome.
- 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.
- 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;
}
}
}
}- Você pode personalizar o número de e-mails afetados com a variável
emailsToGetou as palavras-chave e rótulos com a variávelkeywords. - Salve o script e defina um gatilho para executar a cada alguns minutos ou horas.

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.
- 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);
}
}
}
}
}- Personalize os critérios como necessário.
- 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.