Laravel Gmail SMTP - Dalam pengembangan aplikasi web, mengirim email adalah fitur yang umum ditemui. Dalam Laravel Framework, mengirim email menjadi lebih mudah dengan adanya dukungan terintegrasi untuk layanan email. Salah satu cara yang populer adalah menggunakan Gmail SMTP (Simple Mail Transfer Protocol) sebagai penyedia email. Dalam artikel ini, kami akan menjelaskan langkah-langkah praktis untuk mengonfigurasi dan mengirim email di Laravel menggunakan Gmail SMTP.
Table of Contents
Langkah 1: Konfigurasi Gmail SMTP
Pertama, perlu dipastikan bahwa akun Gmail kalian telah dikonfigurasi dengan benar untuk mengizinkan aplikasi pihak ketiga seperti Laravel untuk mengirim email melalui SMTP. Ikuti langkah-langkah berikut:
Buka halaman Google Security Page, aktifkan 2-Step Verification.
Kedua, buat App Password. App Password ini akan kita gunakan sebagai value untuk key MAIL_PASSWORD di .env.
Isi form atau pilih seperti gambar di bawah ini, kemudian klik Generate.
Nah, seperti yang saya sebutkan tadi. Setelah kita klik generate, maka kita akan mendapatkan App Password. App Password inilah yang akan kita gunakan sebagai value untuk key MAIL_PASSWORD di .env.
Oke. Setelah selesai melakukan konfigurasi pada akun Gmail atau Google kita, selanjutnya kita berpindah ke file .env. Sesuaikan file .env seperti contoh di bawah ini.
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=587
MAIL_USERNAME=mail@gmail.com
MAIL_PASSWORD=oryukmxsqzhbjnff
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="mail@gmail.com"
MAIL_FROM_NAME="${APP_NAME}"
Langkah 2: Mengirim Email di Laravel
Setelah konfigurasi selesai, Kita dapat mulai mengirim email di Laravel menggunakan Gmail SMTP. Berikut adalah langkah-langkah dasar untuk mengirim email:
Generate Notification
Pada artikel ini saya akan memberikan contoh case, Aplikasi Laravel akan mengirimkan "Welcome Email" ke user yang baru register pada aplikasi. Kita akan mengirimkan email tersebut menggunakan Class Notification dari Laravel. Silakan jalankan artisan command seperti di bawah ini untuk membuat class WelcomeEmailNotification.
php artisan make:notification WelcomeEmailNotification
Update Method Register
Kemudian disini saya juga akan mengambil contoh dari laravel ui package. Saya akan melakukan sedikit modifikasi pada class RegisterController.
Jika kalian juga menggunakan laravel ui package, silakan buka file app/Http/Controllers/Auth/RegisterController. Modifikasi sedikit pada method create seperti di bawah ini.
use App\Notifications\WelcomeEmailNotification;
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
$user->notify(new WelcomeEmailNotification());
return $user;
}
Dengan kode seperti di atas, setelah data diinsert ke table users, maka akan mengirimkan email dari class WelcomeNotification ke email user tersebut.
Jangan lupa import class WelcomeNotification.
Sampai disini, sebenarnya kita sudah bisa mencoba fitur welcome email. Tapi, bagaimana kalau kita ubah pesan email tersebut? untuk custom mail message akan dijelaskan di bawah ini. đŸ‘‡
Custom Mail Message
Pertama, buka file RegisterController.php dan tambahkan variable $user didalam WelcomeEmailNotification untuk kita parsing datanya ke email.
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
$user->notify(new WelcomeEmailNotification($user));
return $user;
}
Kemudian buka file WelcomeEmailNotification.php, kemudian ubah kodenya menjadi seperti di bawah ini. Dengan kode tersebut, kita menambahkan variable user yang diparsing dari file RegisterController.php untuk dapat menampilkan data user yang telah diinputkan saat register. Kemudian, kita juga mengubah text pada line pertama dan text untuk button.
public function __construct(User $user)
{
$this->user = $user;
}
public function toMail(object $notifiable): MailMessage
{ return (new MailMessage)
->greeting('Hello, '.$this->user->name)
->line('Welcome to '.config('app.name'))
->action('Explore', url('/'))
->line('Thank you for using our application!');
}
Oke, sekarang kita coba lagi register user baru dan tentunya juga menggunakan email aktif agar dapat menerima dan melihat hasil email notificationnya. Setelah berhasil register, maka akan ada email notification masuk lagi seperti gambar di bawah ini.
Kesimpulan
Mengirim email di Laravel menggunakan Gmail SMTP merupakan proses yang cukup sederhana dengan langkah-langkah yang tepat. Dengan mengonfigurasi pengaturan SMTP Gmail di Laravel dan menggunakan sintaks yang benar untuk mengirim email, Anda dapat mengintegrasikan fitur pengiriman email yang kuat ke dalam aplikasi web Anda. Dengan demikian, Anda dapat memberikan notifikasi, mengirim email konfirmasi, dan menjaga komunikasi dengan pengguna aplikasi dengan mudah.
Top comments (0)