Configuración de Email (Resend)
SFS usa Resend para emails transaccionales: confirmaciones de reserva, cancelaciones, recordatorios y notificaciones de expiración.
1. Crear cuenta en Resend
Section titled “1. Crear cuenta en Resend”Registrate en resend.com. El tier gratuito incluye 100 emails/día (3,000/mes).
2. Obtener API Key
Section titled “2. Obtener API Key”Dashboard → API Keys → Create API Key → copiá la key (formato re_xxxxx).
3. Configurar en .env
Section titled “3. Configurar en .env”RESEND_API_KEY=re_xxxxx4. Verificar dominio (producción)
Section titled “4. Verificar dominio (producción)”Para enviar desde tu propio dominio:
- Dashboard → Domains → Add Domain
- Agregá los registros DNS que Resend te indica (MX, DKIM, SPF)
- Una vez verificado, actualizá el
FROMensrc/lib/email.ts:
Para desarrollo/test, podés usar [email protected] sin verificar dominio (solo envía a tu email registrado).
Templates
Section titled “Templates”Los templates de email están en src/lib/email.ts. Hay dos sets:
Plantillas para el jugador
Section titled “Plantillas para el jugador”| Evento | Subject |
|---|---|
| Reserva creada | ⚽ Reserva pendiente — Cancha X fecha |
| Reserva confirmada | ✅ Reserva confirmada — Cancha X fecha |
| Reserva cancelada | ❌ Reserva cancelada — Cancha X fecha |
| Partido completado | 🏆 ¿Cómo estuvo? — Cancha X fecha |
| Reserva expirada | ⏰ Reserva expirada — Cancha X fecha |
Plantillas para el dueño
Section titled “Plantillas para el dueño”| Evento | Subject |
|---|---|
| Reserva creada | ❌ No se envía (evitar spam) |
| Pago confirmado | ✅ Pago recibido — Cancha X fecha |
| Reserva cancelada | ❌ Cancelación — Cancha X fecha |
Flujo de envío
Section titled “Flujo de envío”Cambio de estado de reserva │ ▼notificarCambioReserva() │ ┌────┴────┐ │ │ ▼ ▼In-app Email(DB) (Resend)Los emails se envían como fire-and-forget — si Resend falla, la operación de reserva no se ve afectada. Los errores se loguean en consola.
Testing
Section titled “Testing”En desarrollo, si RESEND_API_KEY no está configurada, los emails se skippean con un log:
[EMAIL] Resend no configurado — skip: ⚽ Reserva pendiente...Para ver todos los emails enviados (incluyendo fallidos), revisá el dashboard de Resend → Emails.