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.
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:
php artisan make:mail ProductUpdated --markdown=emails.products.updated
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:
php artisan vendor:publish --tag=laravel-mail
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/theme
s podremos personalizar el CSS o crear nuevos temas para luego cambiar el tema actual en el archivo config/mail.php
.
Material Relacionado
- Curso de novedades en Laravel 5.3
- Enviar emails con Mailables en Laravel 5.3
- Componentes y slots en Laravel 5.4
- Soporte de Markdown en Laravel 5.3 con TDD
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior Eventos de Eloquent basados en clases en Laravel 5.4 Lección siguiente Compila JS y CSS con Laravel Mix