La anterior versión de Laravel, la 5.3, ya introdujo novedades importantes relacionadas con la creación de correos electrónicos. Una de ellas fue la de simplificar el envío de emails mediante la creación de clases “mailables” que manejan la configuración de sus correos electrónicos. Otra de las nuevas características fue la de las notificaciones . Con esto se conseguía enviar el mismo mensaje a través de correo electrónico, SMS y otros canales.

Después de plantar los cimientos con estas mejoras, Laravel 5.4 se atreve a incluir un nuevo sistema para crear plantillas de correo electrónico , basadas en el popular lenguaje de marcado ligero Markdown . Así se incluye el analizador Parsedown junto con Markdown Extra para que sea posible el uso de tablas.

Para aquellos que no conozcan Markdown, se trata de un lenguaje que busca conseguir la máxima legibilidad y facilidad de publicación tanto en su forma de entrada como de salida. Actualmente está implementado en multitud de lenguajes como Java, Perl, Ruby o PHP, entre otros. Emplea texto plano, procurando que sea legible, pero consiguiendo que se convierta en XHTML correctamente formateado.

Componentes del correo

Esta nueva característica se sitúa en la parte superior de los nuevos componentes y slots que soporta Blade. Se incluye con los siguientes componentes de correo:

  • Button
  • Footer
  • Header
  • Layout
  • Message
  • Panel
  • Promotion
  • Subcopy
  • Table

Estos componentes se pueden utilizar dentro de la plantilla del email de la siguiente forma:

@component('mail::button', ['url' => $actionUrl, 'color' => $color])
{{ $actionText }}
@endcomponent

Una vez que esté trabajando con la versión 5.4, para comenzar a usar Markdown en sus Mailables todo lo que necesita hacer es introducir -> markdown al construir el método, tal y como se detalla:

return $this->markdown('emails.thanks');

En el correo electrónico "thanks" , puede utilizar cualquiera de los componentes que se citaron anteriormente. Aquí pueden ver un ejemplo de correo electrónico y los resultados:

Imagen 0 en Laravel 5.4 incorpora Markdown

Utilizando Markdown con notificaciones

Las notificaciones están incluidas a este estilo de forma predeterminada, y no hay que hacer nada más. Sin embargo, si lo que quiere es personalizar sus mensajes de notificación, puede utilizar Artisan para mover la plantilla a su carpeta de recursos así:

php artisan vendor:publish --tag=laravel-notifications

Estilo en línea

El simple hecho de escribir los correos electrónicos en Markdown está genial, pero ¿qué pasa con todos los aspectos de estilo? Utilizando el CssToInlineStyles todas las plantillas se ejecutarán a través de esta herramienta. Esto supone no tener que ensuciar todas las plantillas de correo electrónico con desagradables estilos en línea.

Testeo con Litmus

Los diseños de correo electrónico por defecto se prueban con Litmus y utilizan las plantillas de Postmark. Así, puede sentirse seguro enviando estos emails ya que han sido testeados.

Nuevas marcas Artisan

Ahora, cuando ejecuta Artisan para hacer un nuevo correo o notificación, puede pasar el markdown al view.name :

php artisan make:mail --markdown=view.name
php artisan make:notification --markdown=view.name