Resend es un servicio moderno de envío de emails transaccionales que se utiliza en MediQueue para:
- Enviar emails de verificación de cuenta
- Enviar enlaces de recuperación de contraseña
- Enviar notificaciones a administradores
- Visita: https://resend.com
- Click en "Sign Up" (Registrarse)
- Completa el registro con tu email
- Verifica tu correo electrónico
- Una vez dentro, ve a Settings → API Keys
- Click en "Create API Key"
- Dale un nombre descriptivo (ej: "MediQueue Production")
- Selecciona los permisos: "Sending access"
- Click en "Create"
⚠️ IMPORTANTE: Copia la API key inmediatamente (solo se muestra una vez)
La API key tendrá este formato:
re_123456789abcdefghijklmnopqrstuvwxyz
Para producción, es recomendable verificar tu dominio:
- Ve a Domains en el panel de Resend
- Click en "Add Domain"
- Ingresa tu dominio (ej:
mediqueue.app) - Sigue las instrucciones para agregar registros DNS
- Espera verificación (puede tomar unos minutos)
Dominio de Desarrollo:
- Si no tienes dominio verificado, Resend te permite usar
onboarding@resend.dev - Solo podrás enviar emails a direcciones que agregues como "Audience"
- Límite: 100 emails/día en plan gratuito
Abre el archivo .env en la raíz del proyecto backend y agrega/modifica:
# ============================================
# RESEND API CONFIGURATION
# ============================================
# Tu API Key de Resend (REQUERIDO)
RESEND_API_KEY=re_TU_API_KEY_AQUI
# Dirección de remitente (debe ser del dominio verificado)
# En desarrollo puedes usar: onboarding@resend.dev
EMAIL_FROM=noreply@mediqueue.app
# Nombre del remitente
EMAIL_FROM_NAME=MediQueue
# URL del frontend (para enlaces en emails)
FRONTEND_URL=https://www.mediqueue.appPara Desarrollo Local:
RESEND_API_KEY=re_abc123xyz789
EMAIL_FROM=onboarding@resend.dev
EMAIL_FROM_NAME=MediQueue Dev
FRONTEND_URL=http://localhost:5173Para Producción:
RESEND_API_KEY=re_prod_key_123456
EMAIL_FROM=noreply@mediqueue.app
EMAIL_FROM_NAME=MediQueue
FRONTEND_URL=https://www.mediqueue.appDespués de configurar, reinicia el servidor backend:
# Detener servidor actual (Ctrl+C)
# Reiniciar
npm run devEjecuta el script de verificación:
node test-password-reset-system.jsDeberías ver:
✅ Servicio de email configurado
- Ve a:
http://localhost:5173/admin/forgot-password - Ingresa un email de administrador registrado
- Click en "Enviar Enlace de Recuperación"
- Revisa tu bandeja de entrada
curl -X POST http://localhost:3000/api/auth/request-password-reset \
-H "Content-Type: application/json" \
-d '{"s_email": "tu_email@ejemplo.com"}'Causa: La variable de entorno no está en el archivo .env
Solución:
- Verifica que
.envexiste enMediQueue-Backend/ - Verifica que contiene
RESEND_API_KEY=... - Reinicia el servidor
Causa: La API key es incorrecta o expiró
Solución:
- Ve a Resend dashboard
- Verifica que la API key está activa
- Si no funciona, genera una nueva
- Actualiza
.envcon la nueva key
Causa: Dominio no verificado o email en lista de spam
Solución:
- Verifica tu dominio en Resend
- Revisa carpeta de spam
- En desarrollo, agrega el email destino a "Audience" en Resend
Causa: Usando onboarding@resend.dev en producción
Solución:
- Verifica tu dominio propio
- Actualiza
EMAIL_FROMen.env - Reinicia servidor
| Característica | Plan Gratuito | Plan Pro |
|---|---|---|
| Emails/mes | 3,000 | 50,000+ |
| Emails/día | 100 | Ilimitado |
| Dominios | 1 | Ilimitados |
| API Keys | 5 | Ilimitadas |
| Webhooks | ✅ | ✅ |
| Soporte | Email + Chat |
Recomendación: El plan gratuito es suficiente para desarrollo y proyectos pequeños.
-
Verificación de Email (
sendVerificationEmail)- Enviado al crear cuenta de administrador
- Enlace válido 24 horas
- Template: Verificación de cuenta
-
Recuperación de Contraseña (
sendPasswordResetEmail)- Enviado al solicitar reset de contraseña
- Enlace válido 1 hora
- Template: Recuperación de contraseña
-
Bienvenida (
sendWelcomeEmail)- Enviado al verificar email exitosamente
- Template: Bienvenida al sistema
-
API Key:
- ❌ NO la subas a Git
- ❌ NO la compartas públicamente
- ✅ Usa variables de entorno
- ✅ Usa diferentes keys para dev/prod
-
Dominio:
- ✅ Verifica tu dominio propio
- ✅ Configura SPF/DKIM/DMARC
- ✅ Usa subdominios (ej:
noreply@mediqueue.app)
-
Emails:
- ✅ Incluye opción de "unsubscribe"
- ✅ Usa templates profesionales
- ✅ Incluye logo y branding
- Documentación Resend: https://resend.com/docs
- Dashboard Resend: https://resend.com/dashboard
- Status Page: https://status.resend.com
- Soporte: https://resend.com/support
- Cuenta de Resend creada
- API Key generada
- API Key agregada a
.env - Variables
EMAIL_FROMyEMAIL_FROM_NAMEconfiguradas -
FRONTEND_URLconfigurada - Servidor reiniciado
- Script de verificación ejecutado
- Email de prueba enviado exitosamente
- Dominio verificado (producción)
Última actualización: Noviembre 2024
Para soporte: Contacta al equipo de desarrollo de MediQueue