2 Cara Mengirim Email Notifikasi dengan Laravel 8

Mengirim email di laravel dengan menggunakan layanan Mailtrap atau SMTP Gmail seringkali dibutuhkan oleh pengembang aplikasi. Fitur kirim email pada sebuah aplikasi biasanya digunakan untuk mengirim email setelah registrasi atau email notifikasi. Fasilitas untuk mengirim email adalah fitur default pada saat kita menginstall project laravel. Maka dari itu kita tinggal menyettingnya saja tanpa perlu menginstall library tambahan.


Kirim email dengan Laravel

Ada dua cara untuk pengiriman email, yaitu dengan menggunakan fake SMTP seperti Mailtrap dan SMTP Gmail. Apakah perbedaannya?

Mailtrap

Mailtrap adalah layanan fake SMTP untuk kebutuhan pengembangan. Ketika dalam masa development aplikasi, kita tidak ingin mengirim email yang sebenarnya tetapi tetap ingin menjalankan fungsi emailnya bekerja. Fungsi mailtrap ini akan mengarahkan semua email keluar ke dalam kotak masuk si mailtrap.

SMTP Gmail

SMTP Gmail adalah layanan yang paling banyak dipakai oleh pengembang ketika sudah masa production (sudah siap untuk online dan digunakan).


Contoh mengirim email dengan laravel menggunakan mailtrap akan kita coba lebih dahulu. Setelah itu kita akan coba mengirim email laravel dengan Gmail (Gmail SMTP server).


Install Laravel

Saya anggap kamu telah menginstall laravel terbaru versi 8. Jika belum, silakan jalankan perintah di bawah ini.


1. Kirim Email dengan Mailtrap


Konfigurasi Mailtrap

Karena kita akan menggunakan layanan mailtrap, silakan membuat akun di mailtrap.io.

Jika sudah login, kemudian masuk ke demo inbox “My Inbox“.

Email Laravel - Mailtrap Demo Inbox
Mailtrap Demo Inbox

Pada bagian SMTP Settings > Integrations pilih laravel, terdapat setting host, port, username, password, encryption. Masukkan semua konfigurasinya ke file .env proyek laravel.

Email Laravel - Konfigurasi Mailtrap
Konfigurasi Mailtrap

Setting Mailtrap di .env

Buka file .env dan sesuaikan dengan konfigurasi mailtrap yang kamu dapatkan di akun mailtrap. Jangan lupa isi pada bagian MAIL_FROM_ADDRESS dengan email yang digunakan untuk mengirim.

Email Laravel - Mailtrap .env
Mailtrap .env

Membuat controller

Buat sebuah controller untuk menangani proses pengiriman email. Jalankan perintah di bawah ini.

Perintah di atas akan membuat file yang bernama KirimEmailController pada direktori app/Http/Controllers.

Pada controller KirimEmailController, ubah kodenya menjadi seperti di bawah ini.


Membuat route

Setelah membuat controller kita harus mengatur route yang akan menjadi url halaman yang dapat kita akses. Untuk membuat route, buka file routes/web.php lalu tambahkan:


Membuat class mail dan blade

Untuk membuat class mail dan file blade, jalankan perintah di bawah ini.

Perintah di atas akan membuat file class mail yang bernama SendMail pada direktori App/Mail dan membuat file blade bernama emailku.blade.php yang berada pada direktori resources/views.

Pada class SendMail, ubah kodenya menjadi seperti di bawah ini.

Kode di atas terdapat method markdown, subject, with, dan attach. Maksud dari method tersebut dijelaskan sebagai berikut.

markdown: Membuka file blade yang akan menjadi tampilan email, terletak pada direktori resources/views.

subject: Subjek email.

with: Mengirim data berisi array ke file emailku.blade.php.

attach: Untuk melampirkan file pada email. Pada contoh tutorial ini, file yang dilampirkan ada pada direktori public/img.

Pada emailku.blade.php, ubah kodenya menjadi seperti di bawah ini.


Menjalankan fungsi kirim email Laravel

Karena langkah-langkah di atas sudah selesai, kita akan mencoba menjalankan laravel, jalankan perintah:

Kemudian akses alamat:

127.0.0.1:8000/kirim_email

Pada saat mengakses route kirim_email di atas maka akan terjadi proses pengiriman email oleh mailtrap.io.

Sekarang buka inbox mailtrap.io di sana akan ada email yang masuk.

Email Laravel - Mailtrap Inbox
Mailtrap Inbox

Seperti yang terlihat pada screenshot di atas, email berhasil masuk sesuai dengan isi yang kita buat pada emailku.blade.php. Tedapat informasi subject, pengirim, penerima, body, dan attachment.

Percobaan mengirim email dengan mailtrap sudah selesai.


2. Kirim Email dengan SMTP Gmail


Setting SMTP Gmail

Secara default Gmail tidak memperbolehkan aplikasi lain mengakses akun Gmail kamu. Namun Gmail memberikan kebebasan kepada penggunanya untuk mengizinkan aplikasi lain (pihak ketiga) mengakses akun Gmail kamu.


Pertama, kamu harus login akun Gmail.

Setelah login, pilih menu Kelola Akun Anda.

Gmail kelola akun
Gmail kelola akun

Kemudian, silakan pilih menu keamanan / security.

Menu keamanan / security Gmail
Menu keamanan / security Gmail

Scroll ke bawah sampai terlihat menu seperti di bawah ini. Klik Aktifkan akses (tidak direkomendasikan).

Akses aplikasi yang kurang aman
Akses aplikasi yang kurang aman

Kemudian geser aktifkan.

Aktifkan akses aplikasi yang kurang aman
Aktifkan akses aplikasi yang kurang aman

Sampai di sini pengaturan Gmail sudah selesai. Selanjutnya sesuaikan konfigurasi file .env


Setting SMTP Gmail di .env

Cara menggunakan Gmail untuk mengirim email, silakan sesuaikan konfigurasi pada file .env laravel seperti di bawah ini.


Menjalankan fungsi kirim email Laravel

Karena langkah-langkah di atas sudah selesai, kita akan mencoba menjalankan laravel, jalankan perintah:

Kemudian akses alamat:

127.0.0.1:8000/kirim_email

Pada saat route kirim_email di atas diakses, maka akan terjadi proses pengiriman email yang dikirim melalui SMTP Gmail.

Sekarang buka inbox dari email penerima. Untuk contoh di sini saya memakai email outlook sebagai penerima. Jadi email dari Gmail dikirim ke Outlook.

Outlook inbox
Outlook inbox

Seperti yang terlihat pada screenshot di atas, email berhasil masuk sesuai dengan isi yang kita buat pada emailku.blade.php. Tedapat informasi subject, pengirim, penerima, body, dan attachment.

Percobaan mengirim email dengan SMTP Gmail sudah selesai.


Selesai sudah dua percobaan mengirim email dengan SMTP Gmail dan fake SMTP Mailtrap. Untuk mendownload source code pengiriman email laravel dengan mailtrap silakan klik link di bawah ini.

https://github.com/aantamimmaarif/laravel-mailtrap

Tinggalkan komentar

18 − 15 =