Devscamp.net
Envía email de verificación de forma manual en Laravel.

Envía email de verificación de forma manual en Laravel.

6 de ene. de 2021

Escenario

Estoy creando un Seeder de usuarios, ya tengo implementada la verificación por correo, pero quiero que todos los usuarios que se generan por medio de mi seeder, reciban el correo de verificación.

Crear el seeder de usuarios.

php artisan make:seeder UserSeeder
Enter fullscreen mode Exit fullscreen mode

Codigo para crear un usuario y enviar la notificacion por correo

<?php

class UserSeeder 
{
    public function run()
    {
        $user = User::create([
            'name' => $name,
            'email' => $email,
            'password' => bcrypt($password),
        ]);

        $user->sendEmailVerificationNotification();
    }
}
Enter fullscreen mode Exit fullscreen mode

Registrar el UserSeeder en la clase DatabaseSeeder

public function run()
{
    $this->call([
        UserSeeder::class,
    ]);
}
Enter fullscreen mode Exit fullscreen mode

Ejecutar el seeder en la terminal

php artisan db:seed
Enter fullscreen mode Exit fullscreen mode

Con esto puedes revisar tu servicio de depuración de correos como mailhog o mailtrap.io y tendras el correo en tu bandeja de entrada.

Creando multiples usuarios

Puede darse el caso donde necesitemos crear una gran cantidad de usuarios de prueba, para ello podemos usar el metodo times() para crear una gran cantidad de usuarios e iterar para enviarle a cada uno el correo de confirmacion.

$users = User::factory()->times(10)->create();

$users->each(function($user) {
    $user->sendEmailVerificationNotification();
});
Enter fullscreen mode Exit fullscreen mode

Espero el post sea de utilidad, saludos!