America/New_York
Proyectos
/
Iniciar un proyecto
Disponible ahoraChatea conmigo
Proyectos

SendNode – API de Correo Transaccional de Doble Runtime

Imagen principal del proyecto
Avatar
January 20, 2026

Registro de entrega

Fecha del registro: 20 de enero de 2026. La tecnología y las capturas describen la versión entregada según quedó documentada en esta fecha. Cualquier observación de rendimiento corresponde al mismo registro puntual. El sitio enlazado puede incluir cambios posteriores realizados por el cliente u otros proveedores.
SendNode es una API unificada de correo transaccional que soporta dos objetivos de despliegue: Cloudflare Workers (usando AWS SES para envío) o un VPS Node.js estándar (usando SMTP directo). Construida para reemplazar las configuraciones fragmentadas de envío de correo en los proyectos de la agencia, proporciona una única interfaz de administración para gestionar claves API, monitorear registros de entrega y verificar registros DNS para cada proyecto. La plataforma usa sesiones con cookies firmadas para autenticación de administrador, claves API con alcance de proyecto (prefijo sn_) para envío programático, y verificación DNS vía Cloudflare DoH para confirmar registros SPF antes de marcar los proyectos como aprovisionados. Un portal de configuración orientado al cliente (/setup/:token) permite a los clientes verificar su propio estado DNS sin acceder al panel de administración. SendNode se despliega como Cloudflare Worker o como proceso Node.js VPS usando un sistema de adaptadores unificado. Cada adaptador implementa la misma interfaz: send, getQuota, y getAvailableDestinations. El adaptador de Worker usa aws4fetch para firmar solicitudes SES v4, mientras que el adaptador Node usa Nodemailer con manejo de conexiones SMTP y soporte para lista de espera. Cada proyecto genera una clave API única con prefijo sn_ que actúa como identificador de inquilino. Las claves se almacenan como hashes bcrypt en una base de datos Turso SQLite, con los metadatos del proyecto (nombre, dominio de origen, configuración SMTP) almacenados en una tabla separada. El sistema soporta rotación de claves sin interrumpir la entrega de correo. Antes de que un proyecto pueda enviar correo, SendNode verifica que el dominio tenga registros SPF y MX correctos usando Cloudflare DNS-over-HTTPS. Esto elimina la necesidad de herramientas externas como dig o nslookup y funciona de manera consistente tanto en el edge de Cloudflare como en VPS Node.js. Los clientes reciben un enlace de configuración con token de tiempo limitado que les permite verificar su estado DNS, ver los registros recomendados y confirmar que su dominio está listo para enviar correo. El portal muestra progreso paso a paso con indicadores visuales para cada registro DNS requerido. El panel de administración React proporciona:
  • Gestión de Proyectos – Crear, editar y eliminar proyectos con configuración SMTP
  • Claves API – Generar, rotar y revocar claves con visibilidad de uso
  • Registros de Entrega – Ver historial de envío con estado, destinatario y marca de tiempo
  • Métricas – Tasa de entrega, rechazos y errores en tiempo real
  • Verificación DNS – Estado de propagación DNS para cada dominio de proyecto
Cuando una entrega falla debido a errores transitorios de red o límites de tasa, SendNode reintenta automáticamente con retroceso exponencial (2s, 4s, 8s, 16s, 32s). Los reintentos se rastrean en la base de datos con el número de intento y el error subyacente, proporcionando visibilidad completa en el panel de administración.
  • Cloudflare Workers – Runtime en el edge con distribución global
  • Node.js + Express – Runtime VPS alternativo para despliegues autohospedados
  • Turso (libSQL) – Base de datos SQLite en el edge con replicación
  • AWS SES – Servicio de correo para despliegues de Worker
  • Nodemailer – Cliente SMTP para despliegues Node.js
  • aws4fetch – Firma de solicitudes AWS v4 en el edge
  • Cloudflare DoH – Verificación DNS sobre HTTPS
  • bcryptjs – Hashing de claves API
  • React + Tailwind CSS – Panel de administración frontend
Abstraer el envío de correo entre dos runtimes
AWS SES y SMTP directo tienen APIs fundamentalmente diferentes. Se diseñó un sistema de adaptadores donde tanto el adaptador de Worker como el de Node implementan la misma interfaz de TypeScript. El código del worker usa aws4fetch para firmar solicitudes SES v4, mientras que el código Node usa Nodemailer con manejo de conexiones.
Verificación DNS consistente entre entornos
Las herramientas tradicionales de DNS como dig no están disponibles en Cloudflare Workers. Se implementó la verificación DNS usando Cloudflare DNS-over-HTTPS, que funciona idénticamente tanto en el edge como en VPS Node.js.
Seguridad de claves API
Las claves API con prefijo sn_ se almacenan como hashes bcrypt, no como texto plano. Solo se muestra una vez al administrador durante la generación. La validación compara el hash bcrypt del token proporcionado con el hash almacenado.
Autenticación de sesión segura
El panel de administración usa cookies firmadas con un secreto rotado por entorno. Las sesiones expiran después de inactividad y se invalidan en el lado del servidor. No se usan JWTs para evitar problemas de revocación.
  • Configuraciones de correo unificadas en más de 5 proyectos de clientes de la agencia
  • Verificación DNS automatizada elimina configuraciones manuales de correo
  • Panel de administración centralizado para monitorear todos los envíos de correo
  • Doble runtime permite desplegar en Cloudflare Workers o VPS según las necesidades del cliente
  • Reintentos con retroceso exponencial manejan fallos transitorios de red de manera elegante
sendnode.apalaugonzalez.com