Emails transaccionales
Estado (29/09/2026): bienvenida y cuenta eliminada hechas (
@inzumer/email,@inzumer/milimon-emailsy el móduloRESEND_API_KEYyEMAIL_FROMen Render; hasta entonces no sale ningún mail.
Emails que manda el sistema por una acción de la persona (distintos del newsletter de 02):
| Cuándo | Contenido | |
|---|---|---|
| Bienvenida | Al crear la cuenta (primer login) | Saludo de Milagros, qué se guarda en la cuenta, enlaces a la calculadora, el blog y las preferencias |
| Cuenta eliminada | Al borrar la cuenta | Confirmación de que los datos se borraron (RGPD), cómo volver si quiere |
| Confirmación de suscripción | Al suscribirse al newsletter | Doble opt-in (lo resuelve el servicio de newsletter) |
| Inicio de sesión nuevo (opcional) | Login desde un dispositivo nuevo | Aviso de seguridad con fecha y navegador |
| Resumen mensual (opcional, con consentimiento) | Una vez por mes | Cálculos guardados, recetas nuevas |
Avisos de receta y artículo nuevos
Sección titulada «Avisos de receta y artículo nuevos»Cuando se publica una receta o un artículo, quienes estén suscriptos reciben un email con la foto, el título, una bajada, los milicitos (si es una reseña) y el botón para leerlo.
- Plantillas “Nueva receta” y “Nuevo artículo” hechas con los mismos componentes de email (ver abajo), en es/en según el idioma de la suscripción.
- Para empezar, sin backend: el sitio publica el RSS y MailerLite (o Brevo) envía una campaña automática por cada entrada nueva usando nuestra plantilla (exportada como HTML).
- Más adelante, desde la API: al publicar en el CMS, un webhook avisa a
milimon-backend-nest, que envía a la lista de suscriptores (guardada con doble opt-in y baja en un clic) por el proveedor. - Frecuencia: como máximo un aviso por día; si hay varias publicaciones, un resumen.
¿Sirve la librería de componentes actual?
Sección titulada «¿Sirve la librería de componentes actual?»No directamente. Los clientes de correo (Gmail, Outlook, Apple Mail) no entienden clases de
Tailwind, variables CSS, flexbox moderno ni JavaScript: necesitan HTML con tablas y estilos en
línea. Los componentes de @inzumer/ui-library dependen justamente de eso.
Lo que sí se reutiliza es el sistema de diseño: los valores de @inzumer/tokens (colores,
tipografías, espacios) exportados en TypeScript.
Propuesta
Sección titulada «Propuesta»- Nuevo paquete
@inzumer/email(quedó en su propio repo,inzumer-email), hecho con React Email (gratis, open source): componentes para email (EmailLayout,Heading,Text,Button,Card,Footercon la baja) que leen los valores de@inzumer/tokensy se convierten en HTML compatible con los clientes de correo. Así comparte versión, changesets, Storybook (vista previa de cada email) y diseño con el resto de la librería, y sirve para todos los sitios. - Plantillas de Milimon (bienvenida, cuenta eliminada, nueva receta, nuevo artículo…) en un repositorio propio,
milimon-emails-react, o dentro demilimon-backend-nestsi prefieren menos repos: cada plantilla es un componente con sus textos en es/en y se prueba con capturas. - Envío desde la API (
milimon-backend-nest), que ya sabe cuándo alguien se registra o borra la cuenta: un módulomailcon una cola simple y reintentos, que renderiza la plantilla y la envía por el proveedor.
Proveedor (gratis)
Sección titulada «Proveedor (gratis)»| Servicio | Plan gratuito (aprox.) | Notas |
|---|---|---|
| Resend | ~3.000 emails/mes, ~100/día | Pensado para React Email, API simple |
| Brevo | ~300 emails/día | También sirve para el newsletter |
| Amazon SES | Muy barato, no gratis | Para cuando el volumen crezca |
Requisitos: dominio propio con SPF, DKIM y DMARC configurados (si no, los emails caen en
spam), remitente tipo hola@milimon.com, y en la política de privacidad el proveedor de email
como encargado del tratamiento.
Orden sugerido
Sección titulada «Orden sugerido»- Dominio propio (ver 01) y DNS del proveedor de email.
-
@inzumer/emailcon el layout y los componentes básicos. - Email de bienvenida y de cuenta eliminada desde la API, en el idioma del perfil.
- El resto cuando haya necesidad.
