Microservicio de mensajeria basado en NestJS para envio de correo, SMS, WhatsApp, llamada de voz y gestion de codigos OTP.
- Envio individual y masivo por correo.
- Envio individual y masivo por SMS.
- Envio individual y masivo por WhatsApp.
- Envio individual y masivo por llamada de voz.
- Generacion y validacion de OTP con reglas de seguridad (rate limit e intentos maximos).
- NestJS
- BullMQ
- Redis (ioredis)
- Nodemailer
- Twilio
- Swagger
- Jest (unit y e2e)
- Docker / Docker Compose
- Base API:
/api - Dominio Mailer v1:
/api/v1/mailer - Swagger (no produccion):
/api
- Instalar dependencias.
pnpm install- Preparar entorno.
cp .env.example .env- Levantar en desarrollo.
pnpm setup:devpnpm setuppnpm setup:devpnpm setup:prodpnpm start:devpnpm buildpnpm test:unitpnpm test:unit:covpnpm test:e2epnpm test:cov
Arranque del stack:
docker compose up -d --buildServicios levantados:
mailer-servicemailer-redis
Politica de puertos:
- Se expone solo el puerto HTTP del servicio (
PORT, por defecto3000). - Redis queda en red interna Docker para el servicio.
PORT,NODE_ENVREDIS_URLo (REDIS_HOST,REDIS_PORT,REDIS_USERNAME,REDIS_PASSWORD)- Correo:
MAIL_HOST,MAIL_PORT,MAIL_SECURE,MAIL_USER,MAIL_PASSWORD,MAIL_FROM - Twilio:
TWILIO_ACCOUNT_SID,TWILIO_AUTH_TOKEN,TWILIO_SMS_FROM,TWILIO_WHATSAPP_FROM,TWILIO_VOICE_FROM, etc. - OTP Security:
OTP_MAX_VALIDATE_ATTEMPTS,OTP_VALIDATE_ATTEMPTS_TTL_SECONDS,OTP_GENERATE_RATE_LIMIT_MAX_REQUESTS,OTP_GENERATE_RATE_LIMIT_WINDOW_SECONDS
Para procedimientos detallados de despliegue, troubleshooting, personalizacion y checklist: