Enviar mails en producción con Laravel [SOLUCIONADO]

Entendiendo la necesidad de enviar correos electrónicos en una aplicación Laravel

Las aplicaciones web modernas a menudo requieren la funcionalidad de enviar correos electrónicos a los usuarios para varios propósitos. El framework PHP Laravel facilita enormemente este proceso. Aquí te mostraré cómo puedes configurar este importante características en tu aplicación Laravel desplegada en ambientes de producción.

Características de envío de correos de Laravel

Laravel ofrece una API limpia y simple sobre la biblioteca SwiftMailer que te permite enviar correos electrónicos con facilidad.

Configuración inicial

Primero, necesitamos preparar nuestra aplicación Laravel para enviar correos electrónicos. Esto se puede hacer configurando algunos detalles en el archivo .env de tu aplicación.

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
    

Creando la estructura del correo

Ahora necesitamos construir la estructura de correo que deseamos enviar. Laravel permite la creación de clases Mailable que representan un correo en tu aplicación.

php artisan make:mail TestEmail
    

La clase generada se encuentra en el directorio “app/Mail”, y se puede personalizar según tus necesidades.

namespace AppMail;
use IlluminateBusQueueable;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
use IlluminateContractsQueueShouldQueue;
 
class TestEmail extends Mailable
{
    use Queueable, SerializesModels;
  
    public function build()
    {
        return $this->view('emails.testEmail');
    }
}
    

La vista del correo

Ahora crearemos la vista que se usará para la representación del correo. Laravel permite el uso de todas las características Blade en estas vistas, lo que hace que sea extremadamente flexible.

<div>
    <h2>Bienvenido a nuestra aplicación Laravel</h2>
    <p>Gracias por registrarte</p>
</div>
    

Enviando el correo

Finalmente, puedes enviar el correo usando la fachada Mail. Aquí te muestro un ejemplo de cómo se hace:

namespace AppHttpControllers;
 
use AppMailTestEmail;
use IlluminateSupportFacadesMail;
 
class MailController extends Controller
{
    public function sendEmailTest()
    {
        $email = '[email protected]';
        Mail::to($email)->send(new TestEmail());
        return 'Correo enviado exitosamente';
    }
}
    

Recuerda:

Cada vez que realices cambio en tu archivo de configuración .env en un ambiente de producción, debes limpiar la caché de configuración con el comando:

php artisan config:cache
    

A tener en cuenta

Laravel ofrece por defecto una potente funcionalidad de email. Al utilizar las funcionalidades de la plataforma, puedes optimizar la eficiencia de tu aplicación facilitando el proceso de envío de emails, un componente crucial en la mayoría de las aplicaciones comerciales modernas.

Mantén actualizado tu software

Recuerda mantener siempre actualizado tu entorno de Laravel para asegurarte de que tu sistema de envío de correos electrónicos funcione de manera óptima y segura.

Aprende y mejora

El aprendizaje constante y la mejora de tus habilidades como desarrollador Laravel te ayudará a sacar el máximo provecho de este y otros útiles servicios integrados en este robusto framework.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad