Konfigurasi Notifikasi Email Pada Laravel 10

created by - nusalendra.com

Halo, teman-teman developer! Lagi ngulik Laravel 10 dan penasaran gimana caranya ngatur notifikasi email dengan mudah? Kamu datang ke tempat yang tepat! Di blog ini, kita bakal bahas langkah-langkah simpel untuk mengkonfigurasi notifikasi email di Laravel 10.

Tapi, pernah nggak kamu ngerasain masalah komunikasi yang terlewat gara-gara nggak ada sistem notifikasi email? Atau mungkin user nggak tau kalau ada update penting? Nah, inilah kenapa fitur email notification itu penting banget, terutama buat menjaga komunikasi otomatis dengan user. Tenang aja, kita bakal bahas semua itu dengan gaya santai dan jelas, mulai dari dasar sampai ke tips-tips berguna lainnya. Yuk, langsung aja kita mulai!

Install Framework Laravel

Langkah pertama, arahkan ke folder yang diinginkan, lalu buka terminal/CMD di folder tersebut dan jalankan perintah berikut di dalam terminal/CMD :

composer create-project laravel/laravel:^10.0 notify-mail

composer create-project : Ini adalah perintah untuk membuat proyek baru menggunakan Composer.

laravel/laravel:^10.0 : Bagian ini menunjukkan bahwa kita menginstal Laravel versi 10. Simbol ^ memungkinkan kita mendapatkan versi terbaru dari Laravel 10.

notify-mail : Ini adalah nama folder atau aplikasi yang akan dibuat. Kamu bisa menggantinya dengan nama proyek yang diinginkan.

Setelah proses instalasi selesai, kita dapat menjalankan proyek Laravel dengan mengikuti perintah berikut di terminal/CMD :

cd notify-mail

cd notify-mail : Bagian ini digunakan untuk berpindah ke folder proyek notify-mail yang baru saja dibuat. Ini diperlukan agar kamu dapat menjalankan perintah dan bekerja di dalam proyek Laravel yang baru tersebut.

php artisan serve

php artisan serve : Bagian ini berfungsi untuk menjalankan server lokal bawaan Laravel, yang memungkinkan kamu mengakses aplikasi Laravel melalui browser. Jika di terminal atau cmd muncul pesan "Server running on [http://127.0.0.1:8000]", maka aplikasi Laravel siap digunakan. Laravel dijalankan melalui port 8000, dan kamu bisa membukanya di browser dengan mengunjungi http://localhost:8000/

Verifikasi 2 Langkah (2-Step Verification)

verifikasi-2-langkah

Menggunakan verifikasi dua langkah dalam konfigurasi email notifikasi bertujuan untuk meningkatkan keamanan akun email pengirim. Meskipun seseorang mengetahui kata sandi utama, mereka tetap butuh kode verifikasi tambahan untuk mengakses akun. Ini penting, terutama saat Laravel mengirim email melalui layanan seperti Gmail. Dengan verifikasi dua langkah, kamu juga bisa membuat App Password yang aman khusus untuk aplikasi Laravel, tanpa membahayakan kata sandi utama akunmu.

Langkah-langkahnya adalah sebagai berikut :

  • 1. Masuk ke akun Google kamu.
  • 2. Masuk ke menu Keamanan (Security) di pengaturan akun, atau kamu juga bisa mencarinya dengan mengetik "Verifikasi 2 Langkah" di kolom pencarian.
  • 3. Aktifkan Verifikasi Dua Langkah (2-Step Verification).
  • 4. Pilih metode verifikasi tambahan, seperti kode lewat SMS atau aplikasi autentikator, dan setelah berhasil, verifikasi dua langkah akan diaktifkan.

Setelah verifikasi dua langkah diaktifkan, buka bagian App Password / Sandi Aplikasi untuk mendapatkan kata sandi yang akan digunakan sebagai MAIL_PASSWORD di file .env. Pastikan untuk menyalin dan menyimpan kata sandi ini untuk sementara.

Konfigurasi .env

Sekarang buka file .env kamu di project Laravel dan pada bagian kode ini

MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="$APP_NAME"

Ubah kode menjadi

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=emailpengirim@gmail.com
MAIL_PASSWORD=passwordpengirim
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="emailpengirim@gmail.com"
MAIL_FROM_NAME="$APP_NAME"

Setelah memperbarui kode di atas, pastikan kamu menyesuaikan MAIL_USERNAME dan MAIL_FROM_ADDRESS dengan email kamu, serta MAIL_PASSWORD dengan App Password atau Sandi Aplikasi yang sudah dibuat sebelumnya. Ingat, jangan ada spasi di MAIL_PASSWORD ya!

Membuat Kelas Notifikasi

Pada langkah ini, kita akan membuat kelas notifikasi untuk mengirim pesan notifikasi. Ikuti langkah-langkah berikut ini dengan menjalankan perintah di terminal atau CMD.

php artisan make:notification KirimNotifikasi

Setelah menjalankan perintah tersebut, kamu dapat menemukan kelas notifikasi yang telah dibuat di app/Notifications/KirimNotifikasi.php. Selanjutnya, ubah kode di file tersebut agar sesuai dengan kode yang ditunjukkan di bawah ini.

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class KirimNotifikasi extends Notification
{
    use Queueable;
    public $data;

    /**
     * Create a new notification instance.
     */
    public function __construct($data)
    {
        $this->data = $data;
    }

    /**
     * Get the notification&#39;s delivery channels.
     *
     * @return array&lt;int, string&gt;
     */
    public function via(object $notifiable): array
    {
        return [&quot;mail&quot;];
    }

    /**
     * Get the mail representation of the notification.
     */
    public function toMail(object $notifiable): MailMessage
    {
        return (new MailMessage)
            -&gt;subject(&quot;Email Notification Testing&quot;)
            -&gt;view(&#39;kirim-notifikasi&#39;, [
                &#39;data&#39; =&gt; $this-&gt;data
            ]);
    }

    /**
     * Get the array representation of the notification.
     *
     * @return array&lt;string, mixed&gt;
     */
    public function toArray(object $notifiable): array
    {
        return [
            //
        ];
    }
}

Beberapa penjelasan singkat mengenai fungsi dan property yang ada pada kelas notifikasi :

public $data : Property yang digunakan untuk menyimpan data yang akan digunakan dalam notifikasi.

__construct($data) : Constructor yang menerima data dan menyimpannya ke dalam property $data.

via($notifiable) : Menentukan channel pengiriman notifikasi (dalam hal ini, email).

toMail($notifiable) : Mengatur bagaimana notifikasi akan dikirim melalui email menggunakan MailMessage dan mengirimkan data ke view.

Membuat View

Untuk menampilkan konten email notifikasi, kita perlu membuat view yang akan digunakan di dalam method toMail(). View ini berfungsi sebagai template yang memuat data notifikasi yang akan dikirim. Pada kode di atas, kita menggunakan view 'kirim-notifikasi' dan mengirimkan data ke dalamnya. Sekarang, buat file kirim-notifikasi.blade.php di folder resources/views dan sesuaikan isinya sesuai dengan kebutuhan notifikasi Anda. Masukkan kode berikut ke dalam view tersebut.

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Testing Email Notification</title>
</head>
<body>
    <h3>{{ $data['name'] }}</h3>
    <h4>{{ $data['message'] }}</h4>
</body>
</html>

Membuat Controller

Tahap berikutnya adalah membuat controller dan jalankan perintah berikut di terminal atau CMD.

php artisan make:controller UserController

Sebagai contoh, kita akan membuat controller bernama UserController yang digunakan untuk mengirim data dummy melalui notifikasi. Silakan tambahkan kode berikut ke dalam controller tersebut.

<?php

namespace App\Http\Controllers;

use App\Notifications\KirimNotifikasi;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Notification;

class UserController extends Controller
{
    public function kirimNotifikasi()
    {
        $data = [
            'name' => 'Penerima Notifikasi',
            'email' => 'emailpenerima@gmail.com',
            'message' => 'Terima kasih telah mendaftar akun baru di layanan kami!'
        ];

        Notification::route('mail', $data['email'])
            ->notify(new KirimNotifikasi($data));

        return 'Pengiriman Notifikasi Berhasil';
    }
}

Kode tersebut merupakan sebuah method dalam Laravel yang bertujuan untuk mengirim notifikasi email menggunakan facade Notification.

$data : Sebuah array yang berisi data dummy untuk notifikasi (email yang digunakan harus aktif).

Notification::route('mail', $data['email']) : Metode ini digunakan untuk menentukan rute notifikasi melalui channel email, dengan alamat tujuan yang diambil dari $data['email']. Dengan cara ini, kamu bisa mengirimkan notifikasi langsung ke alamat email yang ditentukan tanpa memerlukan model User.

notify(new KirimNotifikasi($data)) : Metode notify() akan mengirimkan notifikasi. Dalam contoh ini, new KirimNotifikasi($data) membuat sebuah instance dari kelas KirimNotifikasi, dan data yang ada akan diteruskan ke kelas tersebut.

Setelah menambahkan kode di atas, langkah berikutnya adalah membuat route. Buka file routes/web.php, lalu tambahkan kode berikut.

Route::get('/kirim-notifikasi', [UserController::class, 'kirimNotifikasi']);

Hasil

Setelah menambahkan route tersebut ke dalam file web.php, Anda dapat membuka browser dan mengakses halaman http://localhost:8000/kirim-notifikasi. Jika berhasil, halaman tersebut akan menampilkan hasil seperti di bawah ini.

request-berhasil

Kamu bisa memeriksa notifikasi di email penerima, dan hasilnya akan terlihat seperti berikut ini.

notifikasi-email

Kesimpulan

Sebagai penutup, mengonfigurasi notifikasi email di Laravel 10 sebenarnya cukup mudah dan sangat bermanfaat untuk aplikasi kita. Dengan langkah-langkah yang telah kita bahas, kita sekarang bisa mengirim notifikasi email dengan lancar. Fitur ini membantu menjaga komunikasi dengan pengguna tetap teratur dan profesional. Semoga panduan ini membantu dalam memahami prosesnya. Selamat mencoba!