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
routes
en 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_DRIVER
del 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/Mail
con 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\Mail
con- el método
to
para 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$name
e$email
definidas como destinatario. - y el método
send
para pasar la instancia de la clase tipo Mailable a usar.
- el método
- En el método
build()
de la clase/app/Mail/Welcome.php
es donde se agrega la configuración con los métodos:from
,subject
,view
,with
entre 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 comoprotected
oprivate
en la clase.
- Configura el correo electrónico desde el cual se enviarán los emails de la aplicación en el archivo
/config/mail.php
en 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