Saltar al contenido principal

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)

  1. Inicia sesión como superadmin
  2. Ve a Admin → Configuración → Email
  3. Completa los detalles de tu SMTP
  4. Haz clic en Enviar Email de Prueba para verificar
  5. 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.

  1. Ve a Seguridad de la Cuenta de Google
  2. Habilita la Verificación en 2 pasos (obligatorio)
  3. Ve a Contraseñas de aplicaciones → selecciona "Correo" → genera
  4. 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
  1. Regístrate en Mailgun
  2. Agrega tu dominio → verifica los registros DNS
  3. Ve a Sending → Domain Settings → SMTP credentials
  4. 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
  1. Ve a AWS SES Console
  2. Verifica tu dominio
  3. Ve a SMTP Settings → Create SMTP Credentials
  4. 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

  1. Ve a Admin → Configuración → Email
  2. Haz clic en Enviar Email de Prueba
  3. 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

EmailCuándoDestinatario
BienvenidaNuevo inquilino se registraAdmin del inquilino
Invitación al EquipoEl admin invita a un miembroEmail del invitado
Plan CambiadoLa suscripción cambiaAdmin del inquilino
Alerta de Nuevo EnvíoSe recibe nuevo feedbackAdmin/personal del inquilino
Resumen por EmailProgramación diaria/semanalAdmin del inquilino
Informe ProgramadoDiario/semanal/mensualAdmin del inquilino
Alerta de Uso90%+ del límite del planAdmin del inquilino
Restablecimiento de ContraseñaEl usuario solicita restablecerUsuario solicitante
Verificación de EmailNuevo registroNuevo usuario
Código OTPFormulario de feedback con OTPUsuario final que envía feedback

🐛 Solución de Problemas de Email

ProblemaSolución
Los emails no se envíanVerifica los ajustes SMTP en .env. Prueba MAIL_MAILER=log para probar sin SMTP. Revisa storage/logs/laravel.log.
Los emails van a spamAgrega 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 GmailUsa Contraseña de Aplicación. Ver la sección de Gmail más arriba.
Emails retrasadosSi usas QUEUE_CONNECTION=database, asegúrate de que el worker de cola esté en ejecución.

⏭️ Próximos Pasos