DEV Community

Diego
Diego

Posted on

Crear plantilla de Email con Laravel 10 y enviar un correo

Laravel tiene un sistema genial para el envío de correos. En este artículo no vamos a contar como configurarlo, sino que vamos a ir directamente a como se envía un correo.

Para crear una plantilla de correo electrónico, que además será parametizable, primero tenemos que lanzar una orden que nos va a crear los ficheros necesarios:

php artisan make:mail UsuarioCreadoParaEnvioComunicaciones --markdown=emails.usuario_creado_para_envio_comunicaciones
Enter fullscreen mode Exit fullscreen mode

Crea dos ficheros, una clase tipo Mailable:

app/Mail/UsuarioCreadoParaEnvioComunicaciones.php

Y un fichero donde se pondrá el texto del email:

resources/views/emails/usuario_creado_para_envio_comunicaciones.blade.php

Nos vamos al fichero UsuarioCreadoParaEnvioComunicaciones.php:

En el método __construct, vamos a poner las variables que queremos pasarles al correo electrónico:

public function __construct(public Inscripcion $inscripcion, public string $password) { }
Enter fullscreen mode Exit fullscreen mode

Y que no se nos olvide poner en la cabecera:

use App\Models\Inscripcion;
Enter fullscreen mode Exit fullscreen mode

Y cambiamos el asunto del email en el campo subject del método envelope().

Ahora nos vamos al fichero usuario_creado_para_envio_comunicaciones.blade.php y lo modificamos al gusto:

@component('mail::message')
![{{ $inscripcion->elcongreso->nombre }}]({{ $inscripcion->elcongreso->logo }})

# {{ $inscripcion->elcongreso->nombre }}

Estimad{{ $inscripcion->o_a() }} {{ $inscripcion->nombre }},

@if($password == "La que usted tenía anteriormente")
**Aparece en nuestros sistemas como usuari{{ $inscripcion->o_a() }} registrad{{ $inscripcion->o_a() }} en el portal de congresos.**
@endif

A continuación le explicamos los pasos a seguir para realizar su primer acceso y proceder a registrar sus comunicaciones:

* [{{ route('mis-comunicaciones.index', $inscripcion->elcongreso->elcongreso) }}]({{ route('mis-comunicaciones.index', $inscripcion->elcongreso->elcongreso) }})

* Indique su dirección de correo electrónico y su clave:

 * **{!! $inscripcion->email !!}**

 * **{{ $password }}**

Reciba un cordial saludo.

{{ $inscripcion->elcongreso->nombre }}
@endcomponent
Enter fullscreen mode Exit fullscreen mode

Para probarlo podemos lanzar este código:

Mail::to('pruebas@gmail.com')->send(new App\Mail\UsuarioCreadoParaEnvioComunicaciones(App\Models\Inscripcion::find(38), 'password'));

Mail::to('pruebas@gmail.com')->send(new App\Mail\UsuarioCreadoParaEnvioComunicaciones(App\Models\Inscripcion::find(38), 'La que usted tenía anteriormente'));
Enter fullscreen mode Exit fullscreen mode

Un saludo!

Top comments (0)