API de verificação de email em Node.js com fetch
Equipe editorial do 1-email.com · Revisado em 9 de outubro de 2026 · Política editorial
Crie uma chamada de verificação no servidor com timeout, chave protegida e classificação explícita de risco.
Baixe e execute localmente
Node.js 22+. Não exige instalar pacotes. Baixe todos os arquivos abaixo na mesma pasta e execute:
node check.mjs
Arquivos de código
verify.mjs Baixar
// Node.js 22+: server code. Only the public sandbox key is supplied by default.
export class VerificationError extends Error {
constructor(status, message, retryAfter = null) {
super(message); this.status = status; this.retryAfter = retryAfter;
}
}
export async function verifyEmail(email, {key = process.env.EEV_API_KEY || 'eev_sandbox_key', fetchFn = fetch} = {}) {
const url = new URL('https://api.easyemailverification.com/v1/verify');
url.searchParams.set('email', email);
let response;
try {
response = await fetchFn(url, {
headers: {'X-API-Key': key, Accept: 'application/json'},
signal: AbortSignal.timeout(30000)
});
} catch {
throw new VerificationError(503, 'No reliable result; review the request before retrying.');
}
if (!response.ok) {
const messages = {402: 'No credits: check your account before retrying.',
429: 'Rate limited: wait before another request; respect Retry-After.'};
throw new VerificationError(response.status, messages[response.status] || 'Verification request failed.', response.headers.get('Retry-After'));
}
let data;
try { data = await response.json(); } catch { throw new VerificationError(502, 'Invalid JSON response.'); }
if (!data || !['valid','invalid','unknown'].includes(data.result)) {
throw new VerificationError(502, 'Unexpected API response; do not classify the address.');
}
return data;
}
export function classify(data) {
if (data.result === 'invalid') return 'invalid';
if (data.result === 'unknown' || data.disposable || data.accept_all || data.safe_to_send !== true) return 'review';
return 'passed_checks';
}
check.mjs Baixar
import {verifyEmail, classify} from './verify.mjs';
try {
const data = await verifyEmail(process.argv[2] || 'valid@sandbox.easyemailverification.com');
console.log(JSON.stringify({decision: classify(data), result: data.result,
reason: data.reason, did_you_mean: data.did_you_mean}, null, 2));
} catch (error) {
console.error(`HTTP ${error.status || 503}: ${error.message}`);
process.exitCode = 1;
}
Teste sucesso, incerteza e falhas
Troque o endereço padrão pelo argumento da linha de comando (Python/Node) ou pelo campo do formulário. Use valid, invalid, unknown, catchall, disposable, quota e ratelimit em sandbox.easyemailverification.com. O caso especial typo@gmial.com fornece uma sugestão de correção.
Espere revisão para unknown e sinais de risco. Falta de créditos deve interromper a chamada com 402; limite de chamadas retorna 429. Falhas de rede ou JSON nunca devem gerar classificação valid ou invalid de uma caixa postal.
Antes de ir para produção
Defina EEV_API_KEY no ambiente do servidor. Mantenha o endpoint fixo, use timeout, limite o tamanho da chamada e adicione controles de abuso. Para cadastro real, adicione proteção de origem/CSRF, limites próprios e gestão de consentimento. Não repita uma chamada incerta automaticamente nem troque um endereço com erro silenciosamente.
Fonte primária: Easy API reference. Baixar instruções dos exemplos.
Pronto para endereços reais?
Nós operamos o Easy Email Verification. Crie uma conta gratuita para obter a chave de produção após testar a integração.
Obter uma chave de produção gratuita