Saltar al contenido principal

Correo Electrónico No Se Envía

Solución de problemas paso a paso para problemas de entrega de correo electrónico.


Paso 1: Comprobar los Fundamentos

# Comprobar la configuración SMTP en .env
grep MAIL_ .env

Verifica:

  • MAIL_MAILER=smtp (no log ni null)
  • MAIL_HOST es correcto
  • MAIL_PORT es correcto (587 para TLS, 465 para SSL)
  • MAIL_USERNAME y MAIL_PASSWORD están completados
  • MAIL_ENCRYPTION=tls (o ssl)

Paso 2: Probar mediante el Panel de Administración

  1. Ve a Admin → Configuración → Email
  2. Haz clic en Enviar Correo de Prueba
  3. Comprueba el mensaje de error si falla

Paso 3: Probar mediante la Línea de Comandos

php artisan tinker
Mail::raw('Test', function ($m) {
$m->to('[email protected]')->subject('Test');
});

Comprueba storage/logs/laravel.log en busca de errores.


Problemas Comunes

ProblemaSolución
"Connection timed out"El puerto 587/465 está bloqueado por el alojamiento. Prueba el puerto 2525 o contacta con el proveedor.
"Authentication failed"Usuario/contraseña incorrectos. Para Gmail, usa la Contraseña de Aplicación.
"Certificate verify failed"PHP antiguo. Prueba 'verify_peer' => false en las opciones del mailer en config/mail.php.
Los correos van a spamAgrega registros DNS de SPF, DKIM y DMARC.
Correos con retraso¿Usas QUEUE_CONNECTION=database? Asegúrate de que el trabajador de cola esté funcionando.
Sin error pero sin correo¿Usas MAIL_MAILER=log? Los correos se están registrando, no enviando. Comprueba storage/logs/laravel.log.

Usar MAIL_MAILER=log para Depuración

Establece MAIL_MAILER=log en .env para capturar todos los correos electrónicos en el archivo de registro en lugar de enviarlos. Útil para verificar el contenido del correo sin afectar a destinatarios reales.


Próximos Pasos