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):
id
user_id
status
→pending
,valid
,gagal
bukti
→ 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.