| 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