Configurar correo para Lumen

Vamos a configurar Lumen para poder enviar correos. La documentación de lumen, trae información valiosa, pero también faltante. En este artículo lo vamos a hacer completo desde cero.

Configuración básica

Vamos a abrir nuestro archivo bootstrap/app.php y vamos a descomentar el siguiente código:

$app->withFacades();

Vamos a añadir (puede ser debajo del código anterior) el siguiente código:

$app->configure('mail');

Básicamente, eso lo que va a hacer es aplicar la configuración de nuestro archivo config/mail.php (que NO hemos creado.).

Donde están los providers, vamos a añadir el siguiente código, para habilitar la Libreria:

$app->register(Illuminate\Mail\MailServiceProvider::class);

Con esto, ya tenemos la configuración básica.

Configuración del archivo mail.php

Primero vamos a crear una carpeta en la raiz del proyecto que se llame config, y vamos a crear u archivo ahi que se llame mail.php

El contenido del archivo mail.php lo vamos a encontrar aqui, copiamos todo y lo pegamos.

Añadiendo configuración en el .env

Tenemos 2 opciones, o modificamos el archivo mail.php para configurar los datos del servidor, o usamos nuestro archivo .env ambas situaciones son validas pero solo 1 lleva a una mejor práctica.

Al final del archivo .env vamos a colocar el siguiente código:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=hello@example.com
MAIL_FROM_NAME="Example app"

Recuerda modificarlo con los datos de tu servidor y tambien recuerda colocarlo en tu .env.example para que no lo pierdas.

Enviado correo electrónico

En este punto, ya puedes comenzar a guiarte con la documentacion de Laravel. Es cierto que los comando como make:mail no van a funcionar, pero puedes crear los archivos a mano y va a funcionar perfectamente. En tu carpeta resources, tienes la carptea view y puedes crear la carpeta mail donde puedes crear tus plantillas html pero con extensión .php para enviar por correo, todo va a funcionar como la documentación de laravel te comenta.

Ver más sobre