Mengirim Email dengan Notifikasi di Laravel 11: Panduan Lengkap
Laravel menyediakan sistem notifikasi yang powerful dan fleksibel untuk mengirim email, pesan ke berbagai channel, dan menjalankan tugas-tugas tertentu. Berikut panduan lengkap cara mengirim email dengan notifikasi di Laravel 11:
1. Membangun Notification Class:
- Buat notification class menggunakan Artisan command:
php artisan make:notification UserRegisteredNotification
Ganti UserRegisteredNotification dengan nama yang sesuai dengan kebutuhan Anda, misalnya ResetPasswordNotification atau OrderConfirmationNotification.
-
Di dalam class notification, definisikan beberapa method penting:
via($notifiable)
: Menentukan channel pengiriman notifikasi. Dalam contoh ini, kembalikan array ['email'] untuk mengirim email.
PHPpublic function via($notifiable) { return ['email']; }
to($notifiable)
: Menentukan alamat email tujuan notifikasi. Di sini, kembalikan email dari object $notifiable, misal dari model User.
PHPpublic function to($notifiable) { return $notifiable->email; }
notify($notifiable)
: Digunakan untuk mendefinisikan apa yang harus dilakukan saat notifikasi dikirim. Di sini, Anda bisa membuat log, mengirim pesan ke Slack, atau melakukan tindakan lain.
PHPpublic function notify($notifiable) { $this->email($notifiable); }
2. Membuat Mail Template:
- Buat mail template menggunakan Artisan command:
php artisan make:mail UserRegisteredEmail
Ganti UserRegisteredEmail dengan nama yang sesuai, seperti ResetPasswordEmail atau OrderConfirmationEmail.
-
Di dalam file template (misalnya, resources/views/mail/user-registered-email.blade.php), desain konten email sesuai keinginan Anda. Gunakan Blade templating engine untuk membuat email yang dinamis dan personal.
HTML<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Pendaftaran Akun Berhasil</title> </head> <body> <h1>Pendaftaran Akun Berhasil!</h1> <p>Halo {{ $user->name }},</p> <p>Terima kasih telah mendaftar di website kami.</p> <p>Silakan klik link berikut untuk verifikasi email Anda:</p> <a href="{{ route('verification.verify', ['id' => $user->id, 'hash' => $user->remember_token]) }}">{{ route('verification.verify', ['id' => $user->id, 'hash' => $user->remember_token]) }}</a> <p>Salam,</p> <p>Tim {{ config('app.name') }}</p> </body> </html>
3. Mengirimkan Notifikasi Email:
-
Di controller yang ingin mengirim notifikasi, gunakan method notify dari model yang dinotifikasi dan lewati object notifikasi yang ingin dikirim.
PHPpublic function register(Request $request) { // ... (Proses registrasi) $user = User::create($request->all()); // Kirim notifikasi email kepada user yang baru terdaftar $user->notify(new UserRegisteredNotification); return redirect('/home'); }
4. Menyesuaikan Notifikasi:
- Anda dapat membuat berbagai class notifikasi dan mail template untuk berbagai keperluan, seperti:
- ResetPasswordNotification dan ResetPasswordEmail untuk notifikasi reset password.
- OrderConfirmationNotification dan OrderConfirmationEmail untuk konfirmasi pesanan.
- VerificationEmail dan VerificationEmail untuk verifikasi email.
- Anda dapat menyesuaikan konten email dan channel notifikasi sesuai dengan kebutuhan Anda.
- Laravel menyediakan berbagai channel notifikasi lain selain email, seperti database, SMS, dan Slack.
5. Pengaturan Email:
- Pastikan Anda telah mengkonfigurasi email di Laravel (config/mail.php).
- Atur driver email yang ingin digunakan (misalnya, SMTP, Mailgun, SendGrid).
- Masukkan informasi kredensial email Anda.
- Anda dapat menggunakan layanan email pihak ketiga seperti Mailgun atau SendGrid untuk meningkatkan deliverability email Anda.
Sumber Daya Tambahan: