# 🚀 Guía Rápida: Configurar Envío de Correos

## ⚡ Inicio Rápido (5 minutos)

### Opción 1: Gmail (Recomendado para empezar)

**Paso 1:** Habilitar App Passwords en Gmail
1. Ve a https://myaccount.google.com/security
2. Activa "Verificación en 2 pasos"
3. Ve a https://myaccount.google.com/apppasswords
4. Genera una contraseña para "Ticketera"
5. Copia los 16 caracteres

**Paso 2:** Actualizar `.env`
```env
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=tu-correo@gmail.com
MAIL_PASSWORD=xxxx xxxx xxxx xxxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="noreply@ticketera.com"
MAIL_FROM_NAME="Ticketera"
```

**Paso 3:** Reiniciar servidor
```bash
# Detener servidor actual (Ctrl+C)
php artisan config:clear
php artisan serve
```

**Paso 4:** ¡Probar!
1. Crear nuevo usuario en http://127.0.0.1:8000/users/create
2. Verificar que se envió el correo
3. Revisar inbox del usuario

---

### Opción 2: Mailtrap (Solo para testing)

Perfecto para desarrollo - captura correos sin enviarlos realmente.

**Paso 1:** Crear cuenta
- Ve a https://mailtrap.io
- Regístrate gratis
- Crea un inbox

**Paso 2:** Copiar credenciales
En tu inbox de Mailtrap verás algo como:
```
Host: smtp.mailtrap.io
Port: 2525
Username: 1a2b3c4d5e6f7g
Password: 9h8i7j6k5l4m3n
```

**Paso 3:** Actualizar `.env`
```env
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=tu-username-de-mailtrap
MAIL_PASSWORD=tu-password-de-mailtrap
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="noreply@ticketera.com"
MAIL_FROM_NAME="Ticketera"
```

**Paso 4:** Reiniciar y probar
```bash
php artisan config:clear
php artisan serve
```

Todos los correos aparecerán en tu inbox de Mailtrap.

---

## 📋 Checklist de Verificación

### Antes de crear usuarios:
- [ ] Variables `MAIL_*` configuradas en `.env`
- [ ] Servidor reiniciado después de cambiar `.env`
- [ ] Credenciales SMTP correctas (sin espacios extras)

### Al crear usuario:
- [ ] Formulario no pide contraseña ✓
- [ ] Mensaje de éxito aparece
- [ ] Si usa Gmail/Mailtrap: "Correo enviado a..."
- [ ] Si falla: Muestra link manual

### Verificar correo:
- [ ] Gmail: Revisar inbox del usuario (puede estar en spam)
- [ ] Mailtrap: Ver correo en inbox virtual
- [ ] Diseño se ve bien (gradiente morado)
- [ ] Botón "Activar mi cuenta" funciona

### Activación:
- [ ] Link abre página de activación
- [ ] Muestra nombre y email del usuario
- [ ] Permite establecer contraseña
- [ ] Redirige a login con éxito
- [ ] Usuario puede iniciar sesión

---

## 🔧 Troubleshooting Rápido

### "Connection could not be established"
```bash
# Verificar:
1. Puerto correcto (587 para TLS, no 465)
2. Firewall/antivirus no bloquea conexión
3. Credenciales correctas en .env
4. Probar con Mailtrap primero
```

### "Authentication failed"
```bash
# Gmail:
- Usar App Password (NO la contraseña normal)
- Verificación en 2 pasos debe estar activa

# Verificar en .env:
- MAIL_USERNAME sin espacios
- MAIL_PASSWORD sin espacios
- MAIL_ENCRYPTION=tls (no ssl)
```

### No llega el correo
```bash
# Gmail:
1. Revisar carpeta de spam
2. Verificar que App Password esté correcto
3. Ver logs: storage/logs/laravel.log

# Mailtrap:
1. Verificar que estés viendo el inbox correcto
2. Refrescar la página de Mailtrap
```

### Token expirado
```bash
# Solución:
1. Admin va a perfil del usuario
2. Clic en "Reenviar Activación"
3. Nuevo token válido por 48 horas más
```

---

## 📧 Probar Envío de Correo

Crear ruta temporal en `routes/web.php`:

```php
Route::get('/test-mail', function() {
    $user = new \App\Models\User([
        'name' => 'Test User',
        'email' => 'test@example.com',
        'role' => 'administrador'
    ]);
    
    $link = 'http://ejemplo.com/activate/test123';
    
    try {
        Mail::to('destino@example.com')->send(
            new \App\Mail\UserActivationMail($user, $link)
        );
        return '✅ Correo enviado exitosamente';
    } catch (\Exception $e) {
        return '❌ Error: ' . $e->getMessage();
    }
});
```

Visitar: http://127.0.0.1:8000/test-mail

---

## 📚 Documentación Completa

- **[CONFIGURACION_CORREOS.md](CONFIGURACION_CORREOS.md)** - Guía detallada de todas las opciones SMTP
- **[ACTIVACION_USUARIOS.md](ACTIVACION_USUARIOS.md)** - Flujo completo del sistema de activación

---

## ⚙️ Configuraciones Alternativas

### Outlook/Hotmail
```env
MAIL_HOST=smtp-mail.outlook.com
MAIL_PORT=587
MAIL_USERNAME=tu-correo@outlook.com
MAIL_PASSWORD=tu-contraseña
```

### SendGrid (Producción - 100 correos/día gratis)
```env
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=tu-sendgrid-api-key
```

---

## 🎯 ¿Qué Sigue?

1. ✅ Configurar SMTP (esta guía)
2. ✅ Crear primer usuario
3. ✅ Verificar que recibe el correo
4. ✅ Activar cuenta
5. 🚀 ¡Listo para producción!

---

**¿Problemas?** Consulta [CONFIGURACION_CORREOS.md](CONFIGURACION_CORREOS.md) para más detalles.
