Los Mailables introducidos en la versión 5.3 de Laravel nos dan la posibilidad de generar mensajes de email a través de clases de una forma muy simple y rápida, como aprendimos en el Curso de Novedades de Laravel 5.3.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Sin embargo, el HTML no nos brinda la mejor experiencia cuando queremos redactar emails ¿Cuantos de Uds. usan HTML para escribir apuntes personales? Exacto, casi todos preferimos Markdown para escribir notas, etc. Por otro lado, colocar CSS en línea es muy engorroso. Es por esto que para facilitar la construcción de los mensajes, Laravel 5.4 nos da la alternativa de utilizar formato markdown, junto con los nuevos componentes de Blade y CSS en línea agregado automáticamente para generar emails visualmente agradables en pocos minutos, como aprenderás a continuación:

Notas

Para crear una nueva clase Mailable que use Markdown ejecutamos en consola el comando php artisan make:mail con el nombre de la clase Mailable a crear y usando la opción --markdown=emails.nombre.vista como por ejemplo:

De esta manera se generan 2 archivos: la clase /app/Mail/ProductUpdated.php y la vista /resources/views/emails/products/updated.blade.php

La clase ProductUpdated usará el nuevo método markdown en vez de view para llamar a la plantilla en Markdown del mensaje del mail.

Este tipo de plantillas hace uso de los nuevos Componentes y slots en Laravel 5.4 para construir los mails.

Si quieres personalizar los componentes o el layout tienes que exportarlos usando el comando:

Estos componentes serán exportados en dos directorios markdown y html  dentro de /resources/views/vendor/mail donde cada uno contendrá la representación de cada componente. Adicionalmente, en /resources/views/vendor/mail/html/themes podremos personalizar el CSS o crear nuevos temas para luego cambiar el tema actual en el archivo config/mail.php.

Material Relacionado

Únete a la discusión

Regístrate en Styde y obtén una invitación a nuestro Slack.

Lección anterior Eventos de Eloquent basados en clases en Laravel 5.4 Lección siguiente Compila JS y CSS con Laravel Mix