Notificaciones por email
Mentat manda emails transaccionales con Resend en dos situaciones: la
notificación de una solicitud de acceso (al admin) y los side effects de tipo
notification de las Actions.
El remitente (FROM)
El FROM se configura con la env var MENTAT_FROM_EMAIL de las Cloud Functions.
Por defecto usa el sandbox de Resend (onboarding@resend.dev), que solo entrega
al owner de la cuenta. Para entregar a destinatarios reales hay que verificar un
dominio propio.
Verificar el dominio (una vez)
Esto entrega correos a usuarios reales en vez de que caigan en spam. Es un paso de ops que se hace una sola vez por dominio.
- En Resend → Domains → Add Domain: agregá un subdominio de envío (recomendado,
ej.
send.tudominio.com) para no chocar con el correo existente del dominio raíz. - Resend genera ~3 registros DNS (MX, SPF, DKIM). Cargalos en tu proveedor de DNS exactamente como los da (en el campo “name” poné solo el prefijo; el proveedor le agrega el dominio).
- Verificá en Resend (propaga en minutos).
- Seteá
MENTAT_FROM_EMAIL="Mentat <noreply@send.tudominio.com>"enapps/functions/.envy redeployá la función que envía (onAccessRequestCreated, y las que corran side effects de notificación).
MENTAT_FROM_EMAIL vive en apps/functions/.env (no versionado). El valor queda
aplicado en la función desplegada; si se redeploya desde un clon sin esa línea, el
FROM vuelve al sandbox — re-setearla.
Side effects de notificación (Actions)
Una Action puede mandar un email cuando se ejecuta, declarando un side effect:
{ "type": "notification", "config": {
"to": ["soporte@cliente.com"],
"subject": "Ticket {{ticket}} cerrado",
"body": "El ticket fue cerrado por el operador." } }El body/subject admiten placeholders {{nombreParametro}}. Es best-effort:
si el envío falla, el cambio del modelo igual se aplicó y la ejecución queda
partial (no se pierde el trabajo). Ver Actions.
Resiliencia
El email de solicitud de acceso está desacoplado del submit (corre en un trigger aparte): si Resend está caído, la solicitud igual se guarda y el admin puede verla.