Jak odeslat ověřovací e-mail do fronty v Laravelu

Ve výchozím nastavení odesílá Laravel oznámení o ověření e-mailu synchronně při registraci uživatele. To může proces registrace zpomalit. Lepším přístupem je zařadit ověřovací e-m...

Poptat web

30. 01. 2025

Jak odeslat ověřovací e-mail do fronty v Laravelu

Ve výchozím nastavení odesílá Laravel oznámení o ověření e-mailu synchronně při registraci uživatele. To může proces registrace zpomalit. Lepším přístupem je zařadit ověřovací e-mail do fronty, což umožní rychlejší dokončení požadavku, zatímco e-mail je odeslán na pozadí. V tomto článku prozkoumáme, jak toho dosáhnout vytvořením fronty. VerifyEmail a aktualizace třídy User model pro jeho použití.

Krok 1: Vytvoření fronty VerifyEmail Třída

Laravel používá Illuminate\Auth\Notifications\VerifyEmail oznámení pro zasílání ověřovacích e-mailů. Tuto třídu rozšíříme a vytvoříme ji jako frontu.

Spusťte následující příkaz pro vygenerování nové třídy oznámení:

php artisan make:notification QueueableVerifyEmail

Nyní otevřete app/Notifications/QueueableVerifyEmail.php a upravte jej takto:

<?php
 
namespace App\Notifications;
 
use Illuminate\Auth\Notifications\VerifyEmail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
 
class QueueableVerifyEmail extends VerifyEmail implements ShouldQueue
{
use Queueable;
}

Tím se zajistí, že oznámení bude při odeslání zařazeno do fronty.

Krok 2: Řekněte Laravelu, aby použil nové oznámení

Dále je třeba aktualizovat User model používat náš nový QueueableVerifyEmail místo výchozí třídy VerifyEmail oznámení.

Otevřít app/Models/User.php a přepsat sendEmailVerificationNotification metoda:

public function sendEmailVerificationNotification()
{
$this->notify(new \App\Notifications\QueueableVerifyEmail);
}

Nyní Laravel odešle ověřovací e-mail pomocí verze oznámení zařazené do fronty.

Krok 3: Konfigurace systému front

Chcete-li zajistit, aby byly úlohy zařazené do fronty zpracovány, musíte nakonfigurovat systém fronty Laravel. Pokud jste ještě nenastavili ovladač fronty, aktualizujte svůj systém. .env soubor:

QUEUE_CONNECTION=database

Poté vytvořte potřebné databázové tabulky pro úlohy ve frontě:

php artisan queue:table
php artisan migrate

Nakonec spusťte pracovníka fronty:

php artisan queue:listen

Závěr

Po provedení těchto kroků nyní Laravel při registraci uživatele zařadí ověřovací e-mail do fronty, čímž zlepší výkonnost díky tomu, že doručení e-mailu probíhá na pozadí. Tato jednoduchá úprava může výrazně zlepšit uživatelský komfort tím, že zrychlí a zefektivní registraci.

Původní článek publikoval Nabil Hassen.