Configuración de Email / SMTP
FeedbackPulse envía varios emails transaccionales. Una configuración correcta del email es importante para:
- Emails de bienvenida a nuevos inquilinos
- Enlaces de invitación al equipo
- Emails de restablecimiento de contraseña
- Verificación OTP por email (para formularios de feedback)
- Resúmenes diarios/semanales
- Informes programados
- Alertas de uso
- Notificaciones de cambio de plan
⚙️ Métodos de Configuración
Método 1: Desde el Panel de Administración (Recomendado)
- Inicia sesión como superadmin
- Ve a Admin → Configuración → Email
- Completa los detalles de tu SMTP
- Haz clic en Enviar Email de Prueba para verificar
- Guarda
Método 2: Desde el Archivo .env
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="FeedbackPulse"
📮 Configuración por Proveedor
📧 Gmail
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_app_password
MAIL_ENCRYPTION=tls
⚠️ Importante: Gmail requiere una Contraseña de Aplicación, no tu contraseña habitual.
- Ve a Seguridad de la Cuenta de Google
- Habilita la Verificación en 2 pasos (obligatorio)
- Ve a Contraseñas de aplicaciones → selecciona "Correo" → genera
- Usa la contraseña de 16 caracteres generada
🔴 Límites de Gmail: 500 emails/día (personal) o 2,000/día (Workspace). No recomendado para SaaS en producción.
🔫 Mailgun
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_mailgun_smtp_password
MAIL_ENCRYPTION=tls
- Regístrate en Mailgun
- Agrega tu dominio → verifica los registros DNS
- Ve a Sending → Domain Settings → SMTP credentials
- Copia la contraseña SMTP
📦 Amazon SES
MAIL_HOST=email-smtp.us-east-1.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=your_ses_smtp_username
MAIL_PASSWORD=your_ses_smtp_password
MAIL_ENCRYPTION=tls
- Ve a AWS SES Console
- Verifica tu dominio
- Ve a SMTP Settings → Create SMTP Credentials
- Sal del modo sandbox para producción
📨 SendGrid
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls
💡 Nota: El nombre de usuario es literalmente
apikey(no tu email). La contraseña es tu clave API de SendGrid.
✉️ Postmark
MAIL_HOST=smtp.postmarkapp.com
MAIL_PORT=587
MAIL_USERNAME=your_postmark_server_api_token
MAIL_PASSWORD=your_postmark_server_api_token
MAIL_ENCRYPTION=tls
🔵 ZOHO Mail
MAIL_HOST=smtp.zoho.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_zoho_password
MAIL_ENCRYPTION=tls
🧪 Mailtrap (¡Solo para Pruebas!)
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=587
MAIL_USERNAME=your_mailtrap_username
MAIL_PASSWORD=your_mailtrap_password
MAIL_ENCRYPTION=tls
⚠️ Mailtrap es solo para desarrollo/pruebas. Los emails se capturan en tu bandeja de entrada de Mailtrap y nunca se entregan a destinatarios reales.
🧪 Probar el Email
Desde el Panel de Administración
- Ve a Admin → Configuración → Email
- Haz clic en Enviar Email de Prueba
- Revisa tu bandeja de entrada
Desde la Línea de Comandos
php artisan tinker
Mail::raw('Test email from FeedbackPulse', function ($message) {
$message->to('[email protected]')->subject('SMTP Test');
});
📨 Emails Enviados por FeedbackPulse
| Cuándo | Destinatario | |
|---|---|---|
| Bienvenida | Nuevo inquilino se registra | Admin del inquilino |
| Invitación al Equipo | El admin invita a un miembro | Email del invitado |
| Plan Cambiado | La suscripción cambia | Admin del inquilino |
| Alerta de Nuevo Envío | Se recibe nuevo feedback | Admin/personal del inquilino |
| Resumen por Email | Programación diaria/semanal | Admin del inquilino |
| Informe Programado | Diario/semanal/mensual | Admin del inquilino |
| Alerta de Uso | 90%+ del límite del plan | Admin del inquilino |
| Restablecimiento de Contraseña | El usuario solicita restablecer | Usuario solicitante |
| Verificación de Email | Nuevo registro | Nuevo usuario |
| Código OTP | Formulario de feedback con OTP | Usuario final que envía feedback |
🐛 Solución de Problemas de Email
| Problema | Solución |
|---|---|
| Los emails no se envían | Verifica los ajustes SMTP en .env. Prueba MAIL_MAILER=log para probar sin SMTP. Revisa storage/logs/laravel.log. |
| Los emails van a spam | Agrega registros SPF, DKIM y DMARC al DNS de tu dominio. Usa un proveedor SMTP de confianza. |
| "Connection timed out" | El puerto 587/465 puede estar bloqueado por tu proveedor de hosting. Prueba un puerto o proveedor diferente. |
| Error "Less secure apps" de Gmail | Usa Contraseña de Aplicación. Ver la sección de Gmail más arriba. |
| Emails retrasados | Si usas QUEUE_CONNECTION=database, asegúrate de que el worker de cola esté en ejecución. |