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.
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.
Comments