Email notifikasi otomatis sangat penting untuk meningkatkan profesionalitas sistem. Contoh sederhana: saat admin memvalidasi pembayaran, pelanggan langsung menerima email konfirmasi tanpa perlu dihubungi manual.
Laravel menyediakan fitur Notification yang powerful dan mudah dikustomisasi, baik untuk email, SMS, Slack, maupun database.
π― Tujuan Part 9
- Membuat notifikasi email otomatis di Laravel
- Kirim notifikasi ke pelanggan saat status pembayaran berubah
- Buat notifikasi menggunakan class
Notification - Integrasi ke sistem controller admin
ποΈ 1. Studi Kasus: Validasi Pembayaran
Struktur tabel pembayaran (contoh):
iduser_idstatusβpending,valid,gagalbuktiβ path filecreated_at
π οΈ 2. Buat Notification Class
Jalankan perintah:
php artisan make:notification PembayaranDivalidasi
Laravel akan membuat file di app/Notifications/PembayaranDivalidasi.php.
βοΈ 3. Edit Isi Notifikasi Email
Edit isi class PembayaranDivalidasi:
use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Messages\MailMessage;
class PembayaranDivalidasi extends Notification
{
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
return (new MailMessage)
->subject('Pembayaran Anda Telah Divalidasi')
->greeting('Hai ' . $notifiable->name . ' π')
->line('Terima kasih, pembayaran Anda telah berhasil divalidasi oleh admin.')
->line('Silakan login untuk melanjutkan proses.')
->action('Lihat Status Pembayaran', url('/dashboard'))
->line('Terima kasih telah menggunakan layanan kami!');
}
}
𧬠4. Panggil dari Controller Admin
Misal di PembayaranController.php method validasi():
use App\Models\Pembayaran;
use App\Models\User;
use App\Notifications\PembayaranDivalidasi;
public function validasi($id)
{
$pembayaran = Pembayaran::findOrFail($id);
$pembayaran->status = 'valid';
$pembayaran->save();
// Kirim notifikasi ke user
$user = $pembayaran->user; // relasi pembayaran -> user
$user->notify(new PembayaranDivalidasi());
return redirect()->back()->with('success', 'Pembayaran divalidasi & notifikasi dikirim');
}
Pastikan Relasi Model:
// di Pembayaran.php
public function user()
{
return $this->belongsTo(User::class);
}
π« 5. Konfigurasi Mail
Cek file .env:
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_user
MAIL_PASSWORD=your_pass
MAIL_FROM_ADDRESS=no-reply@yourapp.com
MAIL_FROM_NAME="Aplikasi Anda"
Gunakan Mailtrap (untuk testing) atau Gmail, SMTP server, Mailgun untuk produksi.
π§ Best Practice Notifikasi Laravel
| Fitur | Rekomendasi |
|---|---|
| Format email | Gunakan bahasa sopan dan jelas |
| Multiple channel | Gunakan via(['mail', 'database']) bila perlu log lokal |
| Queue email | Gunakan queue untuk kirim email dalam sistem besar |
| Email template | Bisa override Blade email notification view |
π§° Elektra Network Vision β Spesialis Sistem Email Laravel
Kami bantu Anda:
- Sistem notifikasi Laravel lengkap (email, WA, database)
- Integrasi SMTP + Mailgun / SES
- Optimasi email delivery rate & queue notifikasi
π elektranetworkvision.com β Mitra terbaik Laravel untuk sistem transaksional dan pemberitahuan otomatis.
