Los Mailables son una nueva característica que viene en Laravel 5.3 con la cual podemos crear y configurar los mensajes para enviar por correo electrónico de una manera más simple y elegante:
Notas
Por Clemir Rondón.
- Como Laravel 5.3 ya está disponible podemos realizar la instalación ejecutando directamente a través de su instalador:
laravel new laravel5p3
o a través de Composer:
composer create-project --prefer-dist laravel/laravel laravel5p3
- Puedes crear tu Virtual Host con Apache:
- Revisa los cambios en Laravel 5.3 del directorio
routesen Cambios en la estructura de carpetas y rutas en Laravel 5.3 - Para usar el envío de correos de Laravel se debe configurar la variable
MAIL_DRIVERdel archivo .env del proyecto:- Usando los logs de Laravel ubicados en
/storage/logs, simplemente colocasMAIL_DRIVER=log. - Usando Mailtrap.io
- Usando los logs de Laravel ubicados en
- Para crear una nueva clase con Laravel Mailable se ejecuta:
php artisan make:mail Welcome
De esta manera, se crea automáticamente un archivo en el directorio
/app/Mailcon la clase que manejará todas opciones disponible para la creación y el envío de dicho correo. - Para enviar un mensaje por correo se usa el Facade
Illuminate\Support\Facades\Mailcon- el método
topara indicar los destinatarios. Puede ser una dirección de correo, una instancia de user o una colección de usuarios. Si lo que se pasa es un objeto o colección de objetos Laravel usará automáticamente las propiedades$namee$emaildefinidas como destinatario. - y el método
sendpara pasar la instancia de la clase tipo Mailable a usar.
- el método
- En el método
build()de la clase/app/Mail/Welcome.phpes donde se agrega la configuración con los métodos:from,subject,view,withentre otros. - Para pasar datos a la vista del email puedes usar:
- atributos públicos definidos en la clase y pasados a través del constructor de la clase. Estarán disponibles automáticamente en la vista del email.
- Pasando con el método
with()propiedades definidas comoprotectedoprivateen la clase.
- Configura el correo electrónico desde el cual se enviarán los emails de la aplicación en el archivo
/config/mail.phpen la variablefrom. De esta manera, esta variable se hace global y no necesitarás configurar dicho parámetro en todas las clases Mailable a menos que quieras enviar desde un correo diferente.
Material relacionado
- Cómo enviar emails de prueba con Mailtrap.io en Laravel
- Registro con verificación de email
- Envío de emails de prueba en ambiente local o de desarrollo
- Envío de emails con Mailgun
- Curso de eventos y de jobs
- Novedades en Laravel 5.2
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior La nueva variable $loop en la directiva foreach de Blade Lección siguiente Registro, login y recuperación de contraseña con make:auth en Laravel 5.3