Valide um endereço de e-mail sem enviar uma única mensagem
Verifique a sintaxe do e-mail, os registros MX e os domínios descartáveis com três chamadas de API. Sem conexão SMTP, sem e-mail de verificação, sem risco de devolução. API gratuita de validação de e-mail.
Seu formulário de inscrição coleta um endereço de e-mail. Você armazena, envia uma mensagem de boas-vindas e o e-mail
salta. O endereço foi um erro de digitação. Ou o domínio não existe. Ou foi um descarte
@mailinator.com endereço que estará morto em dez minutos. Agora você tem um lixo
registro em seu banco de dados, uma reputação de remetente prejudicada e um usuário que nunca mais voltará.
A solução tradicional é enviar um e-mail de verificação: “Clique neste link para confirmar seu endereço”. Funciona, mas adiciona atrito. A conversão cai. E só detecta o erro de digitação depois você já enviou uma mensagem para um endereço incorreto.
Você pode validar um endereço de e-mail antes de enviar qualquer coisa. Três chamadas de API verificam a sintaxe, MX registros e domínios descartáveis. Todo o processo leva menos de 200 ms e detecta os problemas que causam 90% das falhas na entrega de e-mail.
Três camadas de validação de e-mail
Cada camada captura uma classe diferente de endereço de e-mail inválido. Use-os juntos para um completo pipeline de verificação de e-mail ou escolha aqueles que você precisa.
-
Validação de sintaxe. O endereço segue um formato válido? O domínio
tem um erro de digitação conhecido? O
/v1/email/validateendpoint verifica a conformidade com RFC 5322, detecta endereços baseados em funções (admin@,support@) e sugere correções para erros ortográficos comuns de domínio, comogmial.comouhotmal.com. -
Verificação de registro MX. O domínio pode receber e-mail? O
/v1/email-mx/verifyendpoint consulta DNS em busca de registros MX e volta para A registros. Se o domínio não tiver servidor de correio, o endereço não poderá ser entregue; não há necessidade de tentar novamente vai consertar isso. -
Detecção de e-mail descartável. O endereço é de um serviço descartável? O
/v1/disposable-email/checkverificações de endpoint em mais de 700 domínios descartáveis conhecidos e variações de correspondência de padrões. Ele também sinaliza se o domínio é um provedor gratuito (Gmail, Outlook) para que você possa distinguir entre endereços pessoais e descartáveis.
Verifique a sintaxe do e-mail e detecte erros de digitação
O /v1/email/validate endpoint faz mais trabalho em uma única chamada. Ele valida
formato, consulta registros MX, verifica domínios descartáveis e detecta erros de digitação em
domínios do provedor.
Resposta:
O e-mail jamie@gmial.com tem sintaxe válida, mas o domínio é um erro de digitação. A API
retorna is_valid: false porque não existem registros MX para gmial.com,
e sugere o endereço corrigido jamie@gmail.com. Mostre esta sugestão em
seu formulário de inscrição e você salva o usuário de uma conta inativa.
Verifique os registros MX para verificar se o e-mail é real
O /v1/email-mx/verify endpoint se concentra no DNS. Ele retorna a lista completa de MX
registros com prioridades e um deliverable campo que informa se o domínio
pode receber correspondência.
Resposta:
O deliverable campo retorna um dos três valores: "likely" (MX
registros encontrados), "unknown" (não existe MX, mas existe um registro A, então o domínio pode
aceitar correspondência), ou "unlikely" (sem registros MX e sem registros A). Use isto para registro MX
validação quando você precisar dos dados DNS brutos.
Detecte endereços descartáveis e descartáveis
O /v1/disposable-email/check endpoint identifica serviços de e-mail temporários.
Esses endereços funcionam por minutos ou horas e depois param de aceitar correspondências.
Resposta:
O is_free campo separa domínios descartáveis de provedores gratuitos. Um Gmail
endereço retorna is_free: true e is_disposable: false. Um Mailinador
endereço retorna is_disposable: true e is_free: false. Isto
a distinção é importante; bloquear todos os provedores gratuitos bloquearia a maior parte da Internet.
Crie um pipeline de validação em Node.js
Combine todas as três verificações em uma única função. Este pipeline executa cada verificação sequencialmente e curto-circuitos na primeira falha.
async function validateEmail(email) {
const headers = { "Content-Type": "application/json" };
const body = JSON.stringify({ email });
// Step 1: Syntax validation + typo detection
const syntaxRes = await fetch("https://api.botoi.com/v1/email/validate", {
method: "POST", headers, body,
});
const syntax = await syntaxRes.json();
if (!syntax.data.format_valid) {
return { valid: false, reason: "Invalid email format" };
}
if (syntax.data.suggestion) {
return {
valid: false,
reason: \`Did you mean \${syntax.data.suggestion}?\`,
};
}
// Step 2: MX record verification
const mxRes = await fetch("https://api.botoi.com/v1/email-mx/verify", {
method: "POST", headers, body,
});
const mx = await mxRes.json();
if (!mx.data.has_mx) {
return { valid: false, reason: "Domain cannot receive email" };
}
// Step 3: Disposable email detection
const dispRes = await fetch("https://api.botoi.com/v1/disposable-email/check", {
method: "POST", headers, body,
});
const disp = await dispRes.json();
if (disp.data.is_disposable) {
return {
valid: false,
reason: \`Disposable email detected (\${disp.data.provider})\`,
};
}
return { valid: true, reason: null };
}
// Usage
const result = await validateEmail("test@mailinator.com");
console.log(result);
// { valid: false, reason: "Disposable email detected (Mailinator)" }
A abordagem sequencial é legível e sai mais cedo. Se a sintaxe falhar, você pula a rede solicita MX e cheques descartáveis. Se você preferir velocidade em vez de rescisão antecipada, execute todos três em paralelo:
async function validateEmail(email) {
const headers = { "Content-Type": "application/json" };
const body = JSON.stringify({ email });
// Run all three checks in parallel
const [syntaxRes, mxRes, dispRes] = await Promise.all([
fetch("https://api.botoi.com/v1/email/validate", {
method: "POST", headers, body,
}),
fetch("https://api.botoi.com/v1/email-mx/verify", {
method: "POST", headers, body,
}),
fetch("https://api.botoi.com/v1/disposable-email/check", {
method: "POST", headers, body,
}),
]);
const [syntax, mx, disp] = await Promise.all([
syntaxRes.json(), mxRes.json(), dispRes.json(),
]);
const errors = [];
if (!syntax.data.format_valid) errors.push("Invalid format");
if (syntax.data.suggestion) errors.push(\`Typo: try \${syntax.data.suggestion}\`);
if (!mx.data.has_mx) errors.push("No MX records");
if (disp.data.is_disposable) errors.push("Disposable domain");
return {
valid: errors.length === 0,
errors,
details: { syntax: syntax.data, mx: mx.data, disposable: disp.data },
};
}
A versão paralela dispara todas as três solicitações simultaneamente usando Promise.all.
A latência total é igual à solicitação mais lenta em vez da soma. Na maioria dos casos, todos os três
concluído em menos de 100 ms.
Pipeline de validação Python
A mesma validação em três etapas em Python. Este exemplo usa o requests biblioteca
para maior clareza.
import requests
API_BASE = "https://api.botoi.com/v1"
def validate_email(email: str) -> dict:
headers = {"Content-Type": "application/json"}
payload = {"email": email}
# Step 1: Syntax + typo check
syntax = requests.post(
f"{API_BASE}/email/validate", json=payload, headers=headers
).json()
if not syntax["data"]["format_valid"]:
return {"valid": False, "reason": "Invalid email format"}
suggestion = syntax["data"].get("suggestion")
if suggestion:
return {"valid": False, "reason": f"Did you mean {suggestion}?"}
# Step 2: MX record check
mx = requests.post(
f"{API_BASE}/email-mx/verify", json=payload, headers=headers
).json()
if not mx["data"]["has_mx"]:
return {"valid": False, "reason": "Domain cannot receive email"}
# Step 3: Disposable check
disp = requests.post(
f"{API_BASE}/disposable-email/check", json=payload, headers=headers
).json()
if disp["data"]["is_disposable"]:
provider = disp["data"]["provider"]
return {"valid": False, "reason": f"Disposable email ({provider})"}
return {"valid": True, "reason": None}
# Usage
result = validate_email("jamie@gmial.com")
print(result)
# {'valid': False, 'reason': 'Did you mean jamie@gmail.com?'}
Quando validar endereços de e-mail
Diferentes pontos de contato exigem diferentes profundidades de validação. É aqui que cada cheque se encaixa.
| Ponto de contato | Sintaxe | Verificação MX | Descartável | Por que |
|---|---|---|---|---|
| Formulário de inscrição | Sim | Sim | Sim | Detecte erros de digitação, domínios inativos e contas descartáveis antes de criar um registro |
| Finalização / pagamento | Sim | Sim | Opcional | Os recibos precisam de um endereço de entrega; cheque descartável depende da sua política de reembolso |
| Formulário de contato | Sim | Opcional | Não | A verificação básica do formato evita lixo óbvio; A verificação MX é um bônus |
| Assinar boletim informativo | Sim | Sim | Sim | Protege a reputação do remetente; altas taxas de rejeição fazem com que você seja sinalizado por ESPs |
| Importação de leads/CRM | Sim | Sim | Sim | Limpar os dados antes que eles entrem no pipeline economiza custos posteriores |
| Ferramentas internas | Sim | Não | Não | A verificação de sintaxe detecta erros de entrada de dados; usuários internos são confiáveis |
Pontos-chave
- Valide antes de armazenar. Cada e-mail incorreto em seu banco de dados custa: armazenamento, envios com falha, processamento de devoluções e danos à reputação do remetente. Pegue os problemas na hora de entrada.
-
A detecção de erros de digitação salva os usuários. O
/v1/email/validateponto final detecta erros ortográficos comuns de domínio e retorna uma sugestão. Emergindo "Você quis dizer jamie@gmail.com?" evita a perda de um usuário. - As verificações MX são rápidas e gratuitas. As pesquisas de DNS são resolvidas em milissegundos. Há não há razão para ignorá-los. Um endereço sem registros MX nunca receberá seu e-mail.
- A detecção descartável protege o abuso de julgamento. Se você oferecer uma avaliação gratuita ou plano freemium, a detecção de e-mail descartável impede que a mesma pessoa crie conteúdo ilimitado contas com endereços descartáveis.
-
Nenhuma chave de API é necessária para iniciar. Todos os três endpoints funcionam anonimamente às 5
solicitações por minuto. Teste o pipeline completo sem se inscrever. Adicione um
Authorization: Bearer YOUR_KEYcabeçalho quando você precisar de maior rendimento. -
Execute verificações de velocidade em paralelo. Os três pontos finais são independentes.
Usando
Promise.allreduz a latência total para a solicitação única mais lenta, em vez de a soma dos três.
A documentação completa para todos os três endpoints está no
documentos de API interativos.
Cada endpoint aceita um corpo JSON com um email campo e retorna resultados em
menos de 100 ms da rede de borda da Cloudflare.
FAQ
- Você pode validar um endereço de e-mail sem enviar um e-mail?
- Sim. Você pode verificar três coisas sem enviar nada: se o endereço segue uma sintaxe válida (RFC 5322), se o domínio possui registros MX configurados para receber mensagens e se o domínio pertence a um provedor de e-mail descartável conhecido. Essas três verificações detectam a maioria dos endereços incorretos no momento da inscrição.
- A API de validação de email do botoi é gratuita?
- Sim. O acesso anônimo está disponível a 5 solicitações por minuto com limitação de taxa baseada em IP. Nenhuma chave de API, nenhuma inscrição, nenhum cartão de crédito necessário. Para maior rendimento, os planos pagos começam em US$ 9/mês e incluem acesso a todos os mais de 150 endpoints de API.
- Qual é a diferença entre validação de registro MX e verificação SMTP?
- A validação do registro MX verifica se um domínio possui servidores de e-mail configurados para aceitar e-mail. Confirma que o domínio pode receber mensagens em geral. A verificação SMTP vai além, conectando-se ao servidor de e-mail e perguntando se existe uma caixa de correio específica. As verificações MX são rápidas (menos de 100 ms) e gratuitas. As verificações de SMTP são mais lentas, podem ser bloqueadas por servidores de e-mail e podem acionar limites de taxa ou sinalizadores de spam.
- Quão precisa é a detecção de e-mail descartável?
- O endpoint de e-mail descartável botoi verifica mais de 700 domínios descartáveis conhecidos e usa correspondência de padrões para capturar variações (domínios contendo "temp", "lixo", "descartável", etc.). Também distingue entre domínios descartáveis e provedores gratuitos como Gmail ou Outlook. Nenhuma lista de detecção está 100% completa, mas ela abrange todos os serviços descartáveis amplamente utilizados.
- Devo validar emails no cliente ou no servidor?
- Ambos. Execute uma verificação básica de formato no cliente para obter feedback instantâneo. Execute verificações MX e descartáveis no servidor antes de gravar em seu banco de dados. A validação do lado do cliente melhora a experiência do usuário; a validação do lado do servidor protege seus dados. Nunca confie apenas nas verificações do lado do cliente, pois elas podem ser ignoradas.
Comece a construir com botoi
150+ endpoints de API para consultas, processamento de texto, geração de imagens e utilitários para desenvolvedores. Plano gratuito, sem cartão de crédito.