Documentación
Email (Resend)
Correo transaccional con Resend — verificación, restablecimiento de contraseña, plantillas y cómo añadir nuevos emails.
Motoko Base envía emails de auth y cuenta a través de Resend. Esto es solo email transaccional — no marketing.
Official docs: Resend documentation
Setup
- Crea una cuenta en Resend
- Crea una API key (permiso de envío)
- Añade y verifica tu dominio de envío (SPF/DKIM) — o usa
onboarding@resend.devpara pruebas locales - Define las env vars:
| Variable | Purpose |
|---|---|
RESEND_API_KEY | Server-only API key |
EMAIL_FROM | Sender, e.g. My App <noreply@yourdomain.com> |
Mantén también BETTER_AUTH_URL alineada con tu URL pública — Better Auth construye los enlaces de verificación/reset a partir de ella.
Sin Resend la app arranca, pero los emails de verificación y restablecimiento de contraseña no se enviarán.
What sends automatically
| Trigger | Template | |
|---|---|---|
| Verification | Sign up / resend | verification-email.tsx |
| Password reset | Forgot password | password-reset-email.tsx |
| Welcome | Account created | welcome-email.tsx |
Better Auth posee tokens y URLs (src/lib/auth/auth.ts). La capa de email solo entrega vía helpers en src/lib/email/.
Templates
src/lib/email/templates/
shared.tsx # layout, brand name
verification-email.tsx
password-reset-email.tsx
welcome-email.tsxConstruidos con @react-email/components. Edita el copy y el estilo en los archivos de plantilla. Nombre de marca: shared.tsx.
Add a new transactional email
- Crea
src/lib/email/templates/your-email.tsx(usaTransactionalEmailLayoutdeshared.tsx) - Exporta
sendYourEmail(...)desdesrc/lib/email/index.ts - Llámalo desde una server action, webhook o auth hook — nunca desde client components
Solo src/lib/email/client.ts importa el SDK de Resend directamente.
Auth UI routes
| Route | Purpose |
|---|---|
/forgot-password | Request reset link |
/reset-password | Set new password from email link |
/verify-email | Resend verification |
Forgot-password comprueba isEmailConfigured() y muestra un error claro si Resend no está configurado.
Where to change this
| What | Where |
|---|---|
| Send helpers | src/lib/email/index.ts |
| Resend client & config | src/lib/email/client.ts, config.ts |
| Templates | src/lib/email/templates/ |
| Auth email hooks | src/lib/auth/auth.ts |
Better Auth — flujo de verificación y reset.
Environment Variables — referencia de env.