Skip to content
Comece com 100 créditos de verificação grátis
Qualisend
Todos os artigos
Guias / 29 de junho de 2026

Como verificar e-mails do Google Forms

8 minutes read

Qualisend team
Diagrama de fluxo: um Google Forms alimenta um webhook onFormSubmit do Apps Script que chama a API de verificação da Qualisend e grava um veredito de entregável, arriscado ou não entregável de volta na planilha vinculada.

O Google Forms vai aceitar de bom grado jane@gmial.com, um endereço temporário de um domínio descartável ou um endereço de uma empresa que fechou as portas há dois anos. A configuração nativa de "e-mail válido" só confere se o texto se parece com um endereço — ela nunca pergunta se há uma caixa de correio real por trás dele. Para realmente verificar e-mails do Google Forms, você precisa de uma segunda etapa: uma checagem de verdade contra o sistema de e-mail, seja no momento em que uma resposta chega, seja em lote depois. Este guia mostra as duas formas, usando o Google Apps Script como cola.

A resposta curta#

Dois caminhos, dependendo de você precisar do veredito ao vivo ou poder limpar em lotes:

  1. Tempo real — adicione um gatilho onFormSubmit no Apps Script que lê o endereço enviado, chama a API da Qualisend com o UrlFetchApp e grava o veredito de volta na Planilha Google vinculada. Cada nova resposta é pontuada assim que chega.
  2. Em lote — as respostas já vivem em uma Planilha, então baixe-as em CSV e rode uma única verificação em lote. Melhor para um formulário que já vem coletando respostas há um tempo, ou quando você não quer mexer em código.

Ambos se apoiam no mesmo veredito — deliverable, risky, undeliverable ou unknown, mais subindicadores para endereços descartáveis, de função (role) e gratuitos. O que muda é o timing.

Caminho 1: verificar e-mails do Google Forms em tempo real com o Apps Script#

O Google Forms não consegue chamar uma API externa sozinho, mas a Planilha para onde as respostas fluem consegue — por meio do Apps Script. O plano é simples: disparar a cada envio, pegar o e-mail, perguntar à Qualisend sobre ele e carimbar a resposta ao lado da linha.

Configure o script. Abra a Planilha Google que coleta suas respostas (no editor do Formulário, Respostas → Vincular às Planilhas se você ainda não fez isso). A partir da Planilha, vá em Extensões → Apps Script. Antes de qualquer coisa, guarde sua chave para que ela nunca fique no código: no editor de scripts, abra Configurações do projeto → Propriedades do script e adicione QUALISEND_API_KEY com o seu valor. O script a lê em tempo de execução com o PropertiesService.

Depois cole um handler como este. Consulte a referência da API para o caminho exato do endpoint e o formato da requisição — a URL abaixo é um placeholder:

// Bound to the responses spreadsheet.
// Runs on each new Form submission (see trigger setup below).

const QUALISEND_URL = 'https://api.qualisend.com/v1/verify'; // confirm at /developers
const EMAIL_QUESTION = 'Email address'; // your exact question title
const STATUS_COL = 8;                    // an empty column to write the verdict into

function onFormSubmit(e) {
  const email = (e.namedValues[EMAIL_QUESTION] || [])[0];
  if (!email) return;

  const apiKey = PropertiesService.getScriptProperties().getProperty('QUALISEND_API_KEY');

  const res = UrlFetchApp.fetch(QUALISEND_URL, {
    method: 'post',
    contentType: 'application/json',
    headers: { Authorization: 'Bearer ' + apiKey },
    payload: JSON.stringify({ email }),
    muteHttpExceptions: true, // handle errors ourselves instead of throwing
  });

  // Fail open: if the check errors, keep the response — never lose a real lead.
  if (res.getResponseCode() !== 200) return;

  const { result } = JSON.parse(res.getContentText());
  const row = e.range.getRow();
  const sheet = e.range.getSheet();

  sheet.getRange(row, STATUS_COL).setValue(result.status);       // deliverable | risky | undeliverable | unknown
  sheet.getRange(row, STATUS_COL + 1).setValue(result.score);    // 0-100
}

O objeto e que um envio de Formulário te entrega é a parte útil: e.namedValues mapeia cada título de pergunta para a sua resposta, e e.range é a linha que acabou de ser gravada — então e.range.getRow() te diz exatamente qual linha carimbar. Faça EMAIL_QUESTION corresponder ao título da sua pergunta com precisão e aponte STATUS_COL para uma coluna vazia.

Adicione o gatilho. Um gatilho simples (uma função onFormSubmit isolada) não consegue chamar o UrlFetchApp, porque alcançar um serviço externo exige uma autorização que os gatilhos simples não têm. Você precisa de um gatilho instalável. No editor de scripts, abra Gatilhos (o ícone de relógio) → Adicionar gatilho e escolha:

  • Função: onFormSubmit
  • Origem do evento: Da planilha
  • Tipo de evento: Ao enviar formulário

Salve, aprove o aviso de autorização uma vez e está no ar. Envie uma resposta de teste e veja o status e a pontuação aparecerem nas colunas que você escolheu.

Uma observação sobre timing. A Qualisend retorna as checagens locais rápidas (sintaxe, domínio, descartável, função, erro de digitação) imediatamente, com a sondagem SMTP mais profunda da caixa de correio terminando logo em seguida. Para um carimbo em tempo real na Planilha, o result imediato é o que você quer — você obtém um veredito acionável sem fazer quem enviou esperar. Se depois você quiser a resposta confirmada por SMTP para uma linha limítrofe, rode-a novamente pelo caminho em lote, onde alguns segundos de latência não fazem diferença. Como funciona a verificação de e-mails explica por que a etapa SMTP é a mais lenta.

Caminho 2: verificar em lote a planilha de respostas#

Se o seu formulário vem coletando respostas há meses, ou se você prefere não manter um script, pule o gatilho por completo. Suas respostas já são uma planilha — verifique-as em uma única passada.

  1. Abra a Planilha Google vinculada (ou a aba Respostas do Formulário → Vincular às Planilhas).
  2. Arquivo → Fazer download → Valores separados por vírgula (.csv).
  3. Envie esse CSV para a verificação em lote da Qualisend, mapeie a coluna de e-mail e rode o job.
  4. Baixe os resultados e combine-os de volta com suas linhas pelo e-mail, ou cole a coluna de status de volta na Planilha.

O modo em lote roda o pipeline completo, incluindo a sondagem SMTP, em cada linha — então ele pega caixas de correio mortas que uma checagem de sintaxe nunca pegaria. Essa é a mesma rotina que você usaria para qualquer lista exportada; nosso guia sobre como limpar uma lista de e-mails cobre a remoção de duplicatas, o tratamento de endereços de função e o que fazer com o grupo arriscado. Para uma checagem pontual de sanidade em um único endereço, o verificador de endereço único gratuito não precisa de CSV nenhum.

Agindo sobre os vereditos#

Um veredito só é útil se ele muda o que você faz em seguida. Independentemente de como você o coletou, trate os quatro status assim:

VereditoO que fazer com a resposta
deliverableMantenha. Uma caixa de correio real aceitou a sondagem — seguro para enviar e-mail.
undeliverableSuprima. Enviar para ele significa um hard bounce, e os bounces são o que prejudica sua reputação de remetente.
riskySegmente. Muitas vezes é um domínio catch-all — envie com cuidado e observe o engajamento antes de confiar nele.
unknownTente novamente depois. O servidor de e-mail não deu uma resposta clara; não descarte um lead possivelmente real por causa disso.

Os subindicadores refinam o quadro. Um indicador disposable em uma inscrição de sorteio geralmente é um descartável que você pode largar; um indicador role (info@, support@) pode importar dependendo do propósito do formulário. Endereços de função, descartáveis e gratuitos explica quando vale a pena filtrar cada um. No script em tempo real você pode agir sobre eles na hora — por exemplo, gravando uma nota de "revisar" em uma coluna quando result.sub_flags.disposable for verdadeiro.

Qual caminho você deve usar?#

Recorra ao gatilho do Apps Script em tempo real quando as respostas forem leads sobre os quais você faz follow-up rápido — pedidos de demonstração, listas de espera, conteúdo restrito — e você quiser o veredito ao lado de cada linha no momento em que ela chega. Custa um crédito por envio e um pouco de manutenção de script.

Recorra ao modo em lote quando você tiver um acúmulo para limpar, quando preferir evitar código, ou quando um formulário movimentado ultrapassaria a cota de consumidor do UrlFetchApp. Nada impede você de fazer as duas coisas: rode o gatilho nas novas respostas e uma passada mensal em lote para reverificar endereços que possam ter ficado desatualizados.

De qualquer forma, o mesmo princípio do nosso guia de verificação no cadastro se aplica — verifique antes que um endereço chegue à sua ferramenta de envio, para que um erro de digitação vire um lead corrigido em vez de um bounce que você paga mais tarde. Se seus formulários estão espalhados por várias ferramentas, o padrão se generaliza: uma etapa no Zapier sem código ou um webhook do Typeform faz o mesmo trabalho para essas plataformas.

Perguntas frequentes#

O Google Forms consegue verificar endereços de e-mail sozinho?#

Não. O Google Forms tem uma opção de "Validação de resposta" que confere se uma resposta se parece com um e-mail — o formato certo, um @, um domínio — mas ela nunca entra em contato com o servidor de e-mail, então não consegue distinguir uma caixa de correio real de um erro de digitação ou de um domínio descartável. Essa checagem de formato é só um primeiro filtro — ela deixa passar jane@gmial.com sem pestanejar. A verificação de verdade precisa da etapa de API ou de lote descrita acima.

Preciso escrever código para verificar as respostas do Google Forms?#

Só no caminho em tempo real. O gatilho do Apps Script exige colar um script curto e configurar um gatilho, mas o código é pequeno e reutilizável. Se você preferir evitar isso por completo, o caminho em lote é puramente de apontar e clicar: baixe as respostas em CSV, envie para verificação em lote e mescle os resultados de volta. Sem script, sem gatilho.

Verificar vai deixar mais lento quem está preenchendo meu formulário?#

Não. Com o gatilho do Apps Script, a checagem roda após o envio — quem respondeu já viu a tela de confirmação enquanto sua Planilha é carimbada silenciosamente em segundo plano. Nada bloqueia o formulário. Se você quiser que a verificação barre o próprio envio, isso pertence a um formulário personalizado com um endpoint serverless, não ao Google Forms nativo.

Como mantenho minha chave de API da Qualisend fora do script?#

Guarde-a nas Propriedades do script, não no código. No editor do Apps Script, abra Configurações do projeto → Propriedades do script, adicione QUALISEND_API_KEY e leia-a em tempo de execução com PropertiesService.getScriptProperties().getProperty(...), como o trecho acima faz. Use uma chave com escopo do seu painel da Qualisend para que ela tenha apenas permissões de verificação, e rotacione-a caso ela seja exposta.


Pronto para limpar as respostas do seu Google Forms? O plano gratuito inclui 100 créditos para testar qualquer um dos caminhos, o verificador de endereço único gratuito não precisa de configuração nenhuma, e a referência da API tem o endpoint /verify com exemplos de copiar e colar em sete linguagens.

Your reputation, protected.

Clean your first list in minutes. 100 free credits, no card required.

Get started