Crear un Mailable
php artisan make:mail PedidoConfirmado --markdown=emails.pedido-confirmado
La clase define el asunto, la vista y los datos. Desde un controlador:
Mail::to($usuario->email)->send(new PedidoConfirmado($pedido));
En producción, el envío real suele ir a cola para no penalizar la latencia percibida por el usuario.
Cola de correo
Haz que el Mailable implemente Illuminate\Contracts\Queue\ShouldQueue. Laravel serializará el mensaje y un worker lo enviará cuando haya capacidad.
El envío SMTP costoso queda fuera del tiempo de respuesta HTTP: la cola conserva el Mailable hasta que un worker lo procesa.
flowchart LR
C[Controlador o servicio]
Q[Cola de correo]
W[Worker]
S[Envío SMTP o API del proveedor]
C --> Q --> W --> S
Configuración
MAIL_MAILER, MAIL_HOST y credenciales van en .env. Para desarrollo, Mailpit o Mailhog capturan correos sin salir a Internet.
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Laravel es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.
Más tutoriales de Laravel
Explora más contenido relacionado con Laravel y continúa aprendiendo con nuestros tutoriales gratuitos.
Aprendizajes de esta lección
Crear clases Mailable y diferir el envío con ShouldQueue para no bloquear la petición HTTP.
Cursos que incluyen esta lección
Esta lección forma parte de los siguientes cursos estructurados con rutas de aprendizaje