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)
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's delivery channels. * * @return array<int, string> */ public function via(object $notifiable): array { return ["mail"]; } /** * Get the mail representation of the notification. */ public function toMail(object $notifiable): MailMessage { return (new MailMessage) ->subject("Email Notification Testing") ->view('kirim-notifikasi', [ 'data' => $this->data ]); } /** * Get the array representation of the notification. * * @return array<string, mixed> */ 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.
Kamu bisa memeriksa notifikasi di email penerima, dan hasilnya akan terlihat seperti berikut ini.
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!