HOME > PHP

Jak w Laravel 9 wysyłać powiadomienia e-mail

W Laravel 9 można wysyłać powiadomienia email za pomocą klas powiadomień i usługi poczty. Kroki, jakie należy wykonać, aby wysłać powiadomienie email:

  1. Stwórz klasę powiadomienia: Możesz to zrobić używając polecenia Artisan „make:notification”.
  2. Zdefiniuj treść powiadomienia: W pliku powiadomienia można zdefiniować treść emaila i adres, na który ma być wysłany.
  3. Wywołaj powiadomienie: Można to zrobić w kontrolerze lub gdzie indziej w aplikacji i przesłać dane do powiadomienia.
  4. Skonfiguruj serwer poczty: W pliku „.env” należy skonfigurować serwer poczty, który będzie używany do wysyłania powiadomień.
  5. Wyslij powiadomienie: Można to zrobić wywołując metodę „send” na obiekcie powiadomienia.

Przykład

use App\Notifications\ExampleNotification;
use Illuminate\Support\Facades\Notification;

// ...

$user = User::first();

$details = [
    'greeting' => 'Hello!',
    'body' => 'This is an example email.',
    'thanks' => 'Thank you for using Laravel!',
];

Notification::send($user, new ExampleNotification($details));

Tyle w teorii. Teraz trochę praktyki. Można użyć następującego polecenia Artisan, aby stworzyć klasę powiadomienia:

php artisan make:notification ExampleNotification

Gdzie „ExampleNotification” jest nazwą klasy powiadomienia. Po wykonaniu tego polecenia plik z klasą powiadomienia zostanie utworzony w katalogu „app/Notifications”. Możesz edytować ten plik, aby dostosować treść powiadomienia i inne opcje.

use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Messages\MailMessage;

class ExampleNotification extends Notification
{
    public $details;

    public function __construct($details)
    {
        $this->details = $details;
    }

    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->greeting($this->details['greeting'])
                    ->line($this->details['body'])
                    ->line($this->details['thanks'])
                    ->to($notifiable->email);
    }
}

W powyższym przykładzie tworzymy obiekt „MailMessage” i ustawiamy metodami „greeting”, „line” i „to” treść powiadomienia oraz adres odbiorcy. Obiekt „$notifiable” zawiera informacje o odbiorcy powiadomienia, np. adres email.

Możesz wywołać powiadomienie w kontrolerze, korzystając z usługi „Notification”. Przykład:

use App\Notifications\ExampleNotification;
use Illuminate\Support\Facades\Notification;

class ExampleController extends Controller
{
    public function sendNotification()
    {
        $user = User::first();

        $details = [
            'greeting' => 'Hello!',
            'body' => 'This is an example email.',
            'thanks' => 'Thank you for using Laravel!',
        ];

        Notification::send($user, new ExampleNotification($details));

        return 'Notification sent successfully.';
    }
}

W powyższym przykładzie, wywołujemy metodę „send” na usłudze „Notification” i przekazujemy obiekt powiadomienia „ExampleNotification” oraz obiekt odbiorcy „User”.

Możesz również stworzyć obiekt odbiorcy:

$user = new User;
$user->email = 'example@example.com';

Podobne artykuły