template-saas/docs/02-integraciones/INT-003-email.md
rckrdmrd 50a821a415
Some checks failed
CI / Backend CI (push) Has been cancelled
CI / Frontend CI (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / CI Summary (push) Has been cancelled
[SIMCO-V38] feat: Actualizar a SIMCO v3.8.0
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8
- Actualizaciones de configuracion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:08 -06:00

3.0 KiB

id title type status priority provider category multi_tenant version created_date updated_date
INT-003 Integracion Email Providers Integration Implemented P0 SendGrid/SES/SMTP Notifications true 1.0.0 2026-01-07 2026-01-10

INT-003: Email Integration

Metadata

Campo Valor
Codigo INT-003
Proveedor SendGrid, AWS SES, SMTP
Tipo Notificaciones
Estado Implementado
Multi-tenant Si
Fecha integracion 2026-01-10

Documentacion completa: Ver SAAS-013-email.md

Resumen

Integracion multi-proveedor para envio de correos electronicos.

Proveedores Soportados

  • SendGrid
  • AWS SES
  • SMTP generico

Caracteristicas

  • Configuracion por variables de entorno
  • Templates con MJML
  • Fallback entre proveedores
  • Tracking de envios (con provider support)

Configuracion

# SendGrid
SENDGRID_API_KEY=SG.xxx
EMAIL_FROM=noreply@example.com

# AWS SES
AWS_SES_REGION=us-east-1
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...

# SMTP
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=...
SMTP_PASS=...

Rate Limits

Limite Valor Accion si excede
Requests/seg 100 (SendGrid Free), 14 (SES) Retry con backoff exponencial
Emails/dia 100 (SendGrid Free), 50000 (SES) Cola de espera

Manejo de Errores

Codigo Descripcion Accion
400 Bad Request Log + no retry
401 Unauthorized Renovar credenciales
429 Rate Limited Backoff exponencial
500 Server Error Retry con backoff

Fallbacks

Estrategia Email Fallback

Escenario Estrategia
SendGrid no disponible Fallback automatico a AWS SES
AWS SES no disponible Fallback a SMTP generico
Todos fallan Encolar en BullMQ para retry posterior
Email rechazado Log + no retry (direccion invalida)

Orden de Providers

// Configuracion por prioridad
const providers = [
  { name: 'sendgrid', priority: 1 },
  { name: 'ses', priority: 2 },
  { name: 'smtp', priority: 3 }
];

Circuit Breaker

  • Umbral apertura: 5 fallos consecutivos por provider
  • Timeout semi-abierto: 60 segundos
  • Fallback: Siguiente provider en prioridad

Multi-tenant

  • Credenciales: Por tenant (cada tenant puede configurar su proveedor de email)
  • Configuracion: Por tenant via tenant_config
  • Aislamiento: Prefijo tenant_id en todas las operaciones

Testing

Sandbox/Test Mode

  • SendGrid: Usar modo sandbox para no enviar emails reales
  • AWS SES: Sandbox mode con direcciones verificadas
  • Fixtures disponibles para testing unitario

Monitoreo

Metrica Descripcion Alerta
Latencia Tiempo de respuesta >2s
Errores Tasa de errores >1%
Disponibilidad Uptime del servicio <99.9%

Referencias

  • Modulo relacionado: SAAS-013-email.md

Ultima actualizacion: 2026-01-10 Version: 1.0.0