DEV Community

Hilmi Hidayat
Hilmi Hidayat

Posted on • Originally published at divisidev.com on

Kirim Email di Laravel Menggunakan Gmail SMTP

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.

aktifkan 2-step verification

Kedua, buat App Password. App Password ini akan kita gunakan sebagai value untuk key MAIL_PASSWORD di .env.

aktifkan 2 step verification

Isi form atau pilih seperti gambar di bawah ini, kemudian klik Generate.

create app password

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.

copy app password

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}"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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;
}
Enter fullscreen mode Exit fullscreen mode

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;
}
Enter fullscreen mode Exit fullscreen mode

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!');
}
Enter fullscreen mode Exit fullscreen mode

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.

laravel gmail

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.

Credit: Internet illustrations by Storyset

Top comments (0)