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
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) { }
Y que no se nos olvide poner en la cabecera:
use App\Models\Inscripcion;
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
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'));
Un saludo!
Top comments (0)