Mengirim Email Notifikasi Menggunakan SMTP Gmail Laravel 8

Mengirim Email Notifikasi Menggunakan SMTP Gmail Laravel 8

Pendahuluan

Mengirim email notifikasi adalah sebuah fitur yang hampir semua aplikasi mengimplementasikannya, karena melalui email adalah cara paling umum dan formal untuk menyampaikan informasi kepada orang lain. Adapun dalam membuat fitur ini, terkadang sebagai developer, apatah lagi bagi mereka yang belum memiliki akses ke mail server pribadi, maka akan sangat kesulitan untuk melakukan uji coba.

Melalui artikel ini, kita akan menyelesaikan masalah tersebut dengan menggunakan SMTP dari Gmail sebagai mail server.

Baca Juga: Membuat CRUD Laravel 8 Jetstream Livewire

Konfigurasi & Kirim Email Notifikasi

Tahap pertama, install Laravel 8 terlebih dahulu dengan command

composer create-project --prefer-dist laravel/laravel laravel8-email

Apabila proses instalasi sudah selesai, buka file .env dan modifikasi bagian konfigurasi email menjadi seperti berikut

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=passwordgoogleanda
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="${APP_NAME}"

Tugas berikutnya adalah membuat mailable class, pada command line, jalankan artisan

php artisan make:mail PostMail

Kemudian buka file app/Mail/PostMail.php dan modifikasi menjadi

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class PostMail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
  
  	//ADA DUA PARAMETER YANG AKAN KITA TERIMA, PERTAMA ADALAH JUDUL ARTIKEL DAN YANG KEDUA ADALAH NAMA PENERIMA
    public $title;
    public $name;
    public function __construct($title, $name)
    {
        $this->title = $title;
        $this->name = $name;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('Postingan Baru Daengweb.id')->view('emails.posts');
    }
}

Mailable class di atas me-load file posts.blade.php. Buat file tersebut di dalam folder resources/views/emails dan tambahkan code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Postingan Baru</title>
</head>
<body>
    <h4>Hai, {{ $name }}</h4>
    <p>Ada postingan baru dengan judul: <strong>{{ $title }}</strong></p>
</body>
</html>

Saatnya menggunakan mailable class ini untuk mengirim email notifikasi bahwa ada artikel baru yang telah diterbitkan. Buka file routes/web.php dan modifikasi routing yang ada menjadi

Route::get('/', function () {
    \Mail::to('[email protected]')
        ->send(new \App\Mail\PostMail('Mengirim Email Menggunakan Gmail SMTP Laravel 8', 'Anugrah Sandi'));
    return 'Terkirim';
});

Kok penerimanya statis? Yaps, karena tujuan artikel ini adalah menjelaskan bagaimana menggunakan SMTP Gmail sebagai mail server. Lalu, sebagai langkah terakhir, saatnya bagi kita untuk melakukan sedikit konfigurasi security dari gmail agar bisa menggunakan SMTP-nya.

Buka Google Account dan sorot kebagian security, lalu turn on access untuk mengizinkan akses dari luar.

mengirim email laravel 8 menggunakan gmail

Setelah semua proses di atas selesai, tiba saatnya bagi kita untuk melakukan proses testing. Akses aplikasi anda, jika menggunakan php artisan serve, maka akses http://localhost:8000 dan secara otomatis fungsi untuk mengirim email menggunakan SMTP Gmail di Laravel 8 akan dijalankan.

email notifikasi laravel 8

Category:
Share:

Comments