Voltar ao blog
Segurança

Lista de domínios de email descartáveis: como bloqueá-los

Josselin Liebe
Josselin Liebe

Quando um produto oferece um plano gratuito, cadastros falsos aparecem. A maioria das equipes só percebe o problema quando as taxas de rejeição de email sobem, a conversão de teste para pago cai sem explicação, ou créditos de indicação são abusados. Nesse ponto, o dano já está feito.

Trabalhamos com uma empresa B2B SaaS que opera um produto freemium. Eles tinham um fluxo de onboarding bem construído, bons emails de ativação e uma sequência drip estruturada. Nada funcionava como esperado. Quando analisamos os dados de cadastro juntos, quase um em cada oito novos cadastros havia sido criado com um endereço de email descartável. Após adicionar a detecção de emails descartáveis no cadastro usando a API da Veille, os cadastros falsos caíram mais de 10% no primeiro mês. As métricas de conversão voltaram a ser significativas. Os dados de desempenho de email finalmente refletiram a realidade.

Este guia explica como construir essa camada de detecção: quais blocklists de código aberto são úteis, onde ficam aquém, e como combiná-las com verificações de API em tempo real para manter seu fluxo de cadastro limpo.

O que é um domínio de email descartável?

Um domínio de email descartável pertence a um serviço que cria caixas de entrada sob demanda. Não é necessário criar uma conta. Nenhuma identidade é verificada. Os usuários obtêm um endereço funcional em segundos. A caixa de entrada desaparece após alguns minutos ou horas, às vezes sem nenhum limite de tempo. O endereço já sumiu ou foi abandonado muito antes de seu email de boas-vindas ser enviado.

Os serviços mais conhecidos incluem Mailinator, Guerrilla Mail, YOPmail, 10MinuteMail e Temp-Mail. Mas estes são apenas os mais visíveis. Existem centenas de provedores menores e menos conhecidos, incluindo domínios criados especificamente para evitar as blocklists que miram nos mais óbvios.

Nem todos que usam um email descartável estão tentando abusar da sua plataforma. Usuários preocupados com privacidade, desenvolvedores testando integrações e pessoas que evitam emails de marketing têm razões válidas para usar endereços temporários. O problema é que agentes mal-intencionados — pessoas que criam múltiplas contas falsas, reivindicam testes gratuitos repetidamente ou abusam de programas de indicação — também os usam. E são muito mais difíceis de filtrar depois.

O ponto principal: emails descartáveis são um problema de cadastro, não um problema de entregabilidade. Rejeições, danos à reputação do remetente e redução no posicionamento na caixa de entrada são consequências, não causas. É melhor parar o problema no formulário de cadastro do que diagnosticá-lo a partir das análises de email semanas depois.

Quais blocklists valem a pena usar

Há várias listas mantidas pela comunidade disponíveis no GitHub. Diferem no número de domínios cobertos, na frequência de atualização e na precisão.

disposable-email-domains/disposable-email-domains

Cerca de 4.000 domínios, atualizados por meio de contribuições da comunidade que requerem evidências de suporte. É a escolha cautelosa: menos falsos positivos, mas sem cobertura completa. Um bom ponto de partida se você está configurando isso pela primeira vez.

disposable/disposable-email-domains

Cerca de 100.000 domínios, atualizados automaticamente todos os dias. Cobertura mais ampla, mas menos precisa. Algumas entradas incluem serviços de privacidade que não são verdadeiramente descartáveis. Útil para plataformas de alto risco onde você prefere bloquear em excesso a bloquear de menos — por exemplo, plataformas de jogos, sites de cupons ou serviços de cripto.

7c/fakefilter

Cerca de 5.000 domínios, atualizados diariamente, e cada entrada remete à sua fonte. A capacidade de rastrear por que um domínio está listado é útil quando você investiga um caso em que um usuário real foi bloqueado.

FGRibreau/mailchecker

Disponível como bibliotecas prontas para uso para Node.js, PHP, Ruby e outras linguagens. Uma boa opção se você prefere uma biblioteca integrada em vez de um arquivo de texto simples.

Nenhuma dessas listas é completa. Cobrem os provedores mais comuns e se mantêm razoavelmente atualizadas, mas estão sempre atrás dos serviços mais novos.

Domínios descartáveis comuns para bloquear

Se você precisar de um ponto de partida rápido enquanto configura um sistema de detecção adequado, estes domínios aparecem com frequência em atividades de cadastro falso:

mailinator.com
guerrillamail.com
temp-mail.org
yopmail.com
10minutemail.com
trashmail.com
emailondeck.com
maildrop.cc
sharklasers.com
guerrillamailblock.com
grr.la
mailnesia.com
getnada.com
mohmal.com
throwam.com
dispostable.com
tempail.com
fakeinbox.com
throwaway.email
tempinbox.com

Esta lista é uma medida temporária, não uma solução de longo prazo. Novos domínios descartáveis aparecem toda semana. Alguns desaparecem rapidamente, outros permanecem ativos por meses. Uma lista que nunca é atualizada perderá tudo que foi criado após sua última edição.

Por que as listas estáticas ficam desatualizadas

Os serviços de email descartável estão mudando. Muitos agora oferecem APIs REST ou GraphQL, o que significa que uma pessoa pode criar um novo endereço de email automaticamente, sem abrir um navegador. Um novo domínio descartável pode ser configurado e pronto para receber email em menos de uma hora — muito antes de aparecer em qualquer lista pública.

Alguns atacantes não usam serviços existentes. Em vez disso, registram domínios de baixo custo, configuram as definições básicas de servidor de email, usam o endereço uma vez e seguem em frente. Esses domínios parecem legítimos a qualquer verificação de lista estática. A única forma de detectá-los é analisando sinais como configuração DNS, quando o domínio foi registrado e se o servidor de email responde corretamente.

É aqui que as listas estáticas atingem seu limite. Funcionam bem para bloquear provedores conhecidos sem adicionar latência, já que a verificação é apenas uma busca em um conjunto de valores conhecidos. Mas não conseguem cobrir domínios personalizados de uso único ou serviços recém-criados.

Detecção em tempo real com a API da Veille

A API de Validação de Email da Veille (GET /v1/intelligence/email) verifica endereços de email em um banco de dados continuamente atualizado com mais de 100.000 domínios descartáveis conhecidos, combinado com análise de DNS e servidor de email em tempo real. Ela retorna:

  • disposabletrue se o domínio é um provedor descartável conhecido
  • risk_score — uma pontuação de 0 (seguro) a 100 (alto risco), combinando todos os sinais disponíveis
  • role_account / role_type — detecta caixas de entrada compartilhadas como info@, noreply@ ou admin@
  • dns.mx — se o domínio tem um servidor de email válido e configurado
  • smtp_valid — se a caixa de entrada específica pode receber email (disponível com qualification_check=true)

O campo risk_score é o mais útil para tomar decisões detalhadas. Em vez de bloquear ou permitir de forma binária, você pode definir limites: deixar passar pontuações baixas, exigir verificação adicional para pontuações médias e rejeitar pontuações altas diretamente no formulário.

Como implementar o bloqueio de emails descartáveis

Python — verificação em uma blocklist estática

Baixe a lista do GitHub e armazene-a na memória. Faça isso uma vez quando a aplicação iniciar, ou de forma agendada, não a cada requisição.

import requests

BLOCKLIST_URL = (
    "https://raw.githubusercontent.com/"
    "disposable-email-domains/disposable-email-domains/"
    "refs/heads/main/disposable_email_blocklist.conf"
)

def load_blocklist() -> set[str]:
    response = requests.get(BLOCKLIST_URL, timeout=10)
    return set(response.text.strip().splitlines())

DISPOSABLE_DOMAINS = load_blocklist()

def is_known_disposable(email: str) -> bool:
    domain = email.rsplit("@", 1)[-1].lower()
    return domain in DISPOSABLE_DOMAINS

Atualize a lista uma vez por semana usando uma tarefa agendada. A lista muda com frequência suficiente para que uma versão antiga perca abusos reais, mas não tão frequentemente para exigir atualizações contínuas.

Python — usando a API da Veille para detecção em tempo real

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.veille.io/v1"

def validate_email(email: str) -> dict:
    response = requests.get(
        f"{BASE_URL}/intelligence/email",
        params={"query": email},
        headers={"x-api-key": API_KEY},
        timeout=3,
    )
    response.raise_for_status()
    return response.json()

def signup_gate(email: str) -> tuple[bool, str]:
    data = validate_email(email)

    if data["disposable"]:
        return False, "Please use a permanent email address to sign up."

    if data["risk_score"] >= 75:
        return False, "We could not verify this email address. Please try a different one."

    return True, ""

TypeScript — middleware de validação para Express

import express, { Request, Response, NextFunction } from "express";

const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://api.veille.io/v1";

interface EmailValidation {
  disposable: boolean;
  risk_score: number;
  smtp_valid: boolean;
}

async function validateEmailMiddleware(
  req: Request,
  res: Response,
  next: NextFunction
): Promise<void> {
  const { email } = req.body as { email: string };

  try {
    const response = await fetch(
      `${BASE_URL}/intelligence/email?query=${encodeURIComponent(email)}`,
      { headers: { "x-api-key": API_KEY }, signal: AbortSignal.timeout(3000) }
    );

    const data = (await response.json()) as EmailValidation;

    if (data.disposable || data.risk_score >= 75) {
      res.status(422).json({ error: "This email address cannot be used for registration." });
      return;
    }

    next();
  } catch {
    // If the API is unreachable, allow the request through and log the failure
    console.warn(`[veille] email validation failed for ${email}, allowing through`);
    next();
  }
}

const app = express();
app.use(express.json());
app.post("/auth/signup", validateEmailMiddleware, (req, res) => {
  res.json({ status: "ok" });
});

Uma nota importante de implementação: se a API de validação não estiver acessível ou retornar um erro, deixe a requisição passar. Não bloqueie usuários por causa de um problema de rede. Registre a falha e revise esses cadastros separadamente.

Onde adicionar a validação

O formulário de cadastro é o lugar mais importante, mas não o único:

  • Fluxos de alteração de email — um usuário existente que muda para um endereço descartável é um sinal de alerta
  • Formulários de lista de espera e acesso antecipado
  • Formulários de cupons e códigos promocionais
  • Cadastro em programas de indicação

Quanto mais cedo você detectar um endereço descartável, menos trabalho terá de fazer depois para limpar seus dados.

Como evitar falsos positivos

Alguns serviços legítimos geram endereços de email que parecem semelhantes aos descartáveis. Apple Hide My Email, Firefox Relay, aliases do Proton Mail, SimpleLogin e addy.io criam endereços de encaminhamento com padrões incomuns. Uma blocklist muito restritiva pode bloqueá-los por engano.

A diferença importante: esses endereços encaminham para uma caixa de entrada real pertencente a uma pessoa real que escolheu proteger sua privacidade. Bloquear esses usuários significa perder clientes reais, não prevenir fraudes.

Dois passos ajudam a evitar esse problema. Primeiro, mantenha uma lista de serviços de privacy relay conhecidos e ignore todas as verificações para esses domínios:

PRIVACY_RELAY_DOMAINS = {
    "privaterelay.appleid.com",
    "relay.firefox.com",
    "simplelogin.co",
    "addy.io",
    "anonaddy.com",
}

def should_skip_check(email: str) -> bool:
    domain = email.rsplit("@", 1)[-1].lower()
    return domain in PRIVACY_RELAY_DOMAINS

Segundo, use limites de risk_score em vez de correspondência simples de domínio. Um endereço de encaminhamento de um serviço de privacidade conhecido terá tipicamente uma pontuação baixa. Um domínio descartável desconhecido criado na semana passada terá uma pontuação alta. É aqui que a API da Veille oferece mais valor.

Antes de ativar qualquer lógica de bloqueio em produção, execute-a em modo de teste por uma semana: registre o que teria sido bloqueado sem rejeitar nenhuma requisição de verdade. Revise os resultados manualmente. Se usuários reais aparecerem nos registros, ajuste seus limites.

Uma abordagem em camadas

Nenhuma verificação isolada é suficiente. Uma configuração confiável combina várias camadas:

  1. Lista de permissões de privacy relay — verificada primeiro; endereços desses domínios ignoram todas as outras verificações
  2. Blocklist estática — busca rápida, bloqueia os provedores descartáveis mais conhecidos imediatamente
  3. API da Veille — verificação em tempo real para tudo que passou pela lista estática, usando disposable, dns.mx e risk_score
  4. Comportamento pós-cadastro — contas que nunca abrem um email, nunca completam o onboarding e não mostram atividade após 7 dias devem ser revisadas, independentemente de como passaram pelas verificações iniciais

Lógica de decisão:

Sinal Ação
Domínio na lista de permissões de privacy relay Permitir
Domínio na blocklist estática Rejeitar no formulário de cadastro
disposable: true da API Rejeitar no formulário de cadastro
risk_score ≥ 75 Rejeitar no formulário de cadastro
risk_score 50–74 Permitir e marcar para revisão manual
Sem atividade após 7 dias Arquivar e remover das listas ativas

Perguntas frequentes

Com que frequência devo atualizar a blocklist?

Uma vez por semana é suficiente para a maioria das equipes. Configure uma tarefa automatizada para baixar a versão mais recente e recarregá-la na memória. Atualizar com mais frequência traz poucos benefícios; atualizar com menos frequência significa perder provedores recém-identificados.

Devo bloquear endereços baseados em função como info@empresa.com?

Depende do seu produto. Para cadastros de consumidores, endereços compartilhados como info@ ou admin@ são frequentemente sinal de um lead de baixa qualidade ou de uma caixa de entrada compartilhada. Para produtos empresariais, estes podem ser o único endereço disponível publicamente de uma empresa. Use o campo role_account da API da Veille para marcá-los separadamente em vez de bloquear diretamente, e depois trate-os com um fluxo de onboarding diferente.

E os domínios catch-all?

Alguns domínios aceitam email enviado para qualquer endereço, mesmo que não exista nenhuma caixa de entrada real para esse endereço. Uma blocklist estática não consegue detectar isso. Use smtp_valid com qualification_check=true na API da Veille para verificar que uma caixa de entrada específica pode realmente receber email, não apenas que o domínio está configurado.

Posso bloquear todos os provedores de email gratuitos?

Não. A maioria dos usuários legítimos se cadastra com provedores gratuitos como Gmail, Outlook ou Yahoo. Bloquear provedores gratuitos removeria a maioria dos seus usuários reais. A distinção correta é entre descartável e permanente, não entre gratuito e pago.

Existe uma lista que cobre todos os domínios descartáveis?

Não. Novos serviços de email descartável são criados regularmente, frequentemente com o objetivo específico de evitar as blocklists existentes. A abordagem mais eficaz é combinar uma lista estática para provedores conhecidos com uma API em tempo real para todo o resto.

Recursos da Veille

A Veille monitora mais de 953 provedores de email descartável, organizados em 9 categorias: caixas de 10 minutos, serviços temporários, endereços burner, caixas de lixo, geradores de email falso, serviços de encaminhamento anônimo, serviços de alias e relay, ferramentas de privacidade e outros. O banco de dados é atualizado toda semana.

Duas ferramentas gratuitas para usar junto a este guia:

  • Diretório de provedores de email descartável — navegue por todos os 953+ provedores monitorados, com uma etiqueta de categoria e descrição para cada um
  • Ferramenta de comparação de blocklists — insira qualquer domínio e verifique se ele está listado em 12 blocklists de código aberto ao mesmo tempo, incluindo disposable-email-domains/disposable-email-domains, disposable/disposable-email-domains, 7c/fakefilter, FGRibreau/mailchecker e mais

Para detecção em tempo real no cadastro — onde você precisa de disposable, risk_score e smtp_valid retornados imediatamente — a API de Validação de Email da Veille lida com o que nenhuma lista estática consegue.