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


🏗️ 1. Studi Kasus: Validasi Pembayaran

Struktur tabel pembayaran (contoh):


🛠️ 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

FiturRekomendasi
Format emailGunakan bahasa sopan dan jelas
Multiple channelGunakan via(['mail', 'database']) bila perlu log lokal
Queue emailGunakan queue untuk kirim email dalam sistem besar
Email templateBisa override Blade email notification view

🧰 Elektra Network Vision – Spesialis Sistem Email Laravel

Kami bantu Anda:

🌐 elektranetworkvision.com — Mitra terbaik Laravel untuk sistem transaksional dan pemberitahuan otomatis.

Leave a Reply

Your email address will not be published. Required fields are marked *