BillionVerify LogoBillionVerify

Razones de Verificación

Referencia completa de todos los códigos reason de la API BillionVerify — qué significa cada razón y cómo actuar.

Cada resultado de verificación incluye un campo reason que explica por qué el correo electrónico recibió su estado. Use esta referencia para construir lógica de filtrado precisa, diagnosticar resultados inesperados y ajustar su estrategia de envío.

Cómo funcionan las razones

El campo reason aparece en todas las respuestas de verificación junto al campo status:

{
  "email": "user@example.com",
  "status": "valid",
  "reason": "smtp_deliverable"
}

Las razones son identificadores de cadena estables — puede usarlos directamente en reglas de filtrado o lógica condicional posterior.

Valid (Válido)

Los correos con status: "valid" están confirmados como entregables.

RazónDescripción
smtp_deliverableSMTP RCPT devolvió 250 OK — buzón confirmado como entregable. También se produce cuando el modo DBEB de Microsoft 365 confirma la entrega o cuando un dominio catch-all confirma adicionalmente la dirección específica.

Invalid (Inválido)

Los correos con status: "invalid" deben eliminarse de su lista — la entrega no es posible.

RazónDescripción
invalid_syntaxLa dirección de correo falla el análisis de sintaxis — parte local malformada, dominio o falta el @.
no_mx_recordsEl dominio no tiene registros MX (NXDOMAIN o resultado de búsqueda MX vacío).
spf_reject_allEl dominio no tiene registros MX y tiene un registro SPF con -all — el dominio rechaza explícitamente todo el correo entrante.
mailbox_not_foundSMTP 550/5xx confirmó que el buzón no existe en el servidor remoto.
host_not_foundEl nombre de host MX no respondió — host inalcanzable o inexistente.

Unknown (Desconocido)

Los correos con status: "unknown" no pudieron verificarse de forma concluyente. Algunos son temporales (reintentables); otros representan limitaciones estructurales.

RazónReintentableDescripción
smtp_unverifiableNoEl proveedor bloquea la verificación SMTP automatizada (Apple iCloud, Microsoft consumer, Proton, Tuta). El resultado se basa en heurísticas a nivel de dominio.
smtp_blockedNoEl servidor SMTP remoto bloqueó o puso en lista negra explícitamente la conexión.
smtp_eof_blockedEl MX cerró la conexión antes de enviar un banner — típicamente un limitador de velocidad por IP o una regla fail2ban.
smtp_timeoutLa operación SMTP expiró (plazo de contexto o cancelación).
smtp_connection_failedNoFallo genérico de conexión SMTP — ninguna clase más específica coincidió.
smtp_rate_limitedEl servidor SMTP remoto devolvió una respuesta de límite de velocidad (421, 450, 451 o límite de mensajes excedido).
smtp_greylistedRespuesta genérica de greylisting detectada — reintente después de un retraso.
mimecast_greylistGreylisting específico de Mimecast / fallo temporal 451.
proofpoint_ad_lookupBúsqueda asíncrona de AD de Proofpoint en progreso (temp-fail 421 4.1.1 durante validación de destinatario).
policy_temp_failFallo temporal genérico 4xx por aplicación de política remota.
google_rate_limitGoogle MX devolvió una respuesta de límite de velocidad o rechazo temporal.
google_dmarc_misalignmentNoLa configuración DMARC del dominio está desalineada — Google rechaza según política DMARC.
m365_ip_rep_blockMicrosoft 365 rechazó la conexión debido a la reputación de IP (códigos 4.7.650 / 4.7.651).
mailbox_fullNoEl buzón existe pero está sobre cuota (SMTP 452 o respuesta de bandeja de entrada llena).
mailbox_disabledNoEl buzón existe pero ha sido desactivado o dado de baja.
dns_timeoutLa búsqueda DNS o MX expiró — problema transitorio del resolutor.
dns_lookup_errorLa búsqueda DNS falló con un error que no es NXDOMAIN (SERVFAIL, tiempo de espera UDP o error del resolutor).
yahoo_api_verifiedNoLa API de Registro de Yahoo confirmó que la dirección es entregable (ruta de lote).
yahoo_api_not_deliverableNoLa API de Registro de Yahoo confirmó que la dirección no es entregable (ruta de lote).
yahoo_api_errorLa llamada a la API de Registro de Yahoo falló — error general.
yahoo_api_unavailableLa API de Registro de Yahoo no estaba disponible (fallo de salud a nivel de lote).
yahoo_api_eofLa API de Yahoo devolvió EOF anticipado — caída transitoria de TCP/TLS.
yahoo_api_unavailable_after_fallbackLa API de Yahoo falló y el fallback SMTP también falló.
carrier_blockedNoDominio de operador japonés (docomo.ne.jp, au.com, etc.) — SMTP está bloqueado por política del operador.
internal_verifier_errorError interno del verificador no clasificado — fallo transitorio.
rate_limitedEl correo fue limitado en velocidad durante el procesamiento por lotes (alias de smtp_rate_limited en trabajos de archivo).
bucket_default_skip_smtp_unknownNoEl modo de verificación a nivel de cuenta está configurado para omitir SMTP — el resultado se basa solo en verificaciones de dominio.

Risky (Arriesgado)

Los correos con status: "risky" tienen un riesgo de entrega moderado.

RazónReintentableDescripción
mx_only_verification_semaphore_timeoutEl semáforo de concurrencia SMTP expiró — el fallback solo-MX confirmó registros MX válidos pero el buzón no pudo verificarse individualmente.

Catch-all

Los correos con status: "catchall" pertenecen a dominios que aceptan correo para todas las direcciones. La entregabilidad individual no puede confirmarse.

RazónDescripción
catch_all_domainDominio confirmado como catch-all — sonda RCPT aleatoria aceptada por el servidor de correo.
catch_all_deliverableDominio catch-all, y la dirección específica también devolvió 250 OK en RCPT.
catch_all_inferredEstado catch-all inferido de evidencia en caché (indirecto, no una sonda en vivo).
m365_internal_relayDominio de Microsoft 365 configurado como retransmisión interna — todos los RCPT aceptados pero no verificados individualmente.
gateway_accept_allLa puerta de enlace de seguridad (Mimecast, Proofpoint, etc.) está en modo accept-all.
forwarding_aliasServicio de alias de reenvío de correo (SimpleLogin, Firefox Relay, Duck.com).
region_consumer_accept_allDominio de consumidor regional (p. ej. naver.com, daum.net) conocido por aceptar todo el correo entrante — se omite la sonda SMTP.
bucket_default_skip_smtp_catchallEl modo de verificación a nivel de cuenta está configurado para omitir la detección catch-all de SMTP.

Role (Dirección de rol)

Los correos con status: "role" pertenecen a bandejas de entrada compartidas (p. ej. info@, support@, noreply@). Estas direcciones son típicamente entregables pero tienen baja tasa de interacción.

Las direcciones de rol heredan el reason de su verificación SMTP subyacente — no existen códigos de razón dedicados para este estado. Por ejemplo, una dirección de rol que pasa SMTP mostrará reason: "smtp_deliverable".

Disposable (Desechable)

Los correos con status: "disposable" pertenecen a servicios de correo temporal. Aceptar estos generalmente conduce a registros de baja calidad.

RazónDescripción
disposable_domainEl dominio está listado como proveedor de correo desechable / temporal conocido.

Usando razones en el filtrado

Puede combinar status y reason para una segmentación precisa de listas. Por ejemplo, para mantener correos unknown que solo son desconocidos debido a problemas temporales:

function isRetryableUnknown(result) {
  const retryableReasons = new Set([
    'smtp_eof_blocked', 'smtp_timeout', 'smtp_rate_limited',
    'smtp_greylisted', 'mimecast_greylist', 'proofpoint_ad_lookup',
    'policy_temp_fail', 'google_rate_limit', 'm365_ip_rep_block',
    'dns_timeout', 'dns_lookup_error', 'yahoo_api_error',
    'yahoo_api_unavailable', 'yahoo_api_eof',
    'yahoo_api_unavailable_after_fallback', 'internal_verifier_error',
    'rate_limited', 'mx_only_verification_semaphore_timeout',
  ]);
  return result.status === 'unknown' && retryableReasons.has(result.reason);
}

On this page