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:

    o a través de Composer:

  • 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 colocas MAIL_DRIVER=log.
    • Usando Mailtrap.io
  • Para crear una nueva clase con Laravel Mailable se ejecuta:

    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.
  • 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 como protected o private 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 variable from. 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

Únete a la discusión

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

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