Laravel 8 Contoh Mengirim email menggunakan Queque. Tutorial ini akan memandu Anda sepenuhnya tentang cara mengirim email menggunakan Queue Job di aplikasi laravel 8. Dan Anda akan belajar langkah demi langkah cara mengirim email di laravel 8 menggunakan pekerjaan antrian dengan driver smtp seperti Mailgun, Postmark, Amazon SES, office365, gmail dan sendmail.
Queque mail adalah direktori yang menyimpan data dan mengontrol file untuk pesan email yang dikirimkan oleh perintah sendmail . Jika demikian, pesan email harus disimpan sementara. Jika host jarak jauh tidak menjawab permintaan untuk koneksi email, sistem email mengantri pesan dan mencoba lagi nanti.
Terkadang, proses pengiriman Mail membutuhkan waktu. Dan Anda tidak ingin menunggu untuk mengirim email atau proses lain saat memuat proses sisi server. Jadi, Anda dapat menggunakan queue job untuk mengirim email di aplikasi laravel 8. Jadi, laravel 8 ini mengirim email menggunakan contoh tutorial queue akan membuat queue job yang sederhana dan mudah dengan driver database untuk pengiriman email test.
Perhatikan bahwa, Anda dapat menggunakan beberapa detail driver SMTP seperti Mailgun, Postmark, Amazon SES, office365, gmail, dan sendmail dalam file .env untuk mengirim email di laravel 8.
Daftar Isi
- Langkah 1 – Instal Aplikasi Laravel 8
- Langkah 2 – Konfigurasi SMTP & Database
- Langkah 3 – Buat Mailable Class
- Langkah 4 – Tambahkan Rute Kirim Email
- Langkah 5 – Buat Direktori Dan View Blade Mail
- Langkah 6 – Konfigurasi Mail Queue
- Langkah 7 – Bangun Job Queue Untuk Mengirim Email
- Langkah 8 – Jalankan Server Development
Cara Mengirim Email menggunakan Antrian di Laravel 8
Langkah 1 – Instal Aplikasi Laravel 8
Pada langkah ini, gunakan perintah berikut untuk menginstal atau mengunduh aplikasi laravel 8:
composer create-project --prefer-dist laravel/laravel blog
Langkah 2 – Konfigurasi SMTP & Database
Pada langkah ini, Anda perlu mengonfigurasi detail smtp di file .env seperti berikut:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db name
DB_USERNAME=db user name
DB_PASSWORD=db password
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=Add your user name here
MAIL_PASSWORD=Add your password here
MAIL_ENCRYPTION=tls
Langkah 3 – Buat Mailable Class
Pada langkah ini, gunakan perintah yang diberikan di bawah ini untuk membuat mailable NotifyMail class:
php artisan make:mail NotifyMail
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class NotifyMail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('view.name');
}
}
Dengan nama apa pun Anda akan membuat template email. Yang ingin Anda kirim. Jangan lupa untuk menambahkan nama template email di class build dari class notifymail yang dibuat di atas.
return $this->view('view.name');
to
return $this->view('emails.demoMail');
Pada langkah selanjutnya, Buat template email bernama demoMail.blade.php di dalam direktori resources/views/emails. Itu sebabnya telah menambahkan email nama tampilan.
Langkah 4 – Tambahkan Rute Kirim Email
Pada langkah ini, buka /web.php , jadi arahkan ke direktori route . Dan kemudian tambahkan route berikut untuk mengirim email:
Route::get('email-test', function(){
$details['email'] = '[email protected]';
dispatch(new App\Jobs\SendEmailJob($details));
dd('done');
});
Langkah 5 – Buat Direktori Dan View Blade Mail
Pada langkah ini, buat email nama direktori di dalam direktori resources/views. Kemudian buat file view blade demoMail.blade.php di dalam direktori resources/views/emails. Dan perbarui kode berikut ke dalamnya:
<!DOCTYPE html>
<html>
<head>
<title>Laravel 8 Send Email Example</title>
</head>
<body>
<h1>This is test mail from Medikre.com</h1>
<p>Laravel 8 send email example</p>
</body>
</html>
Langkah 6 – Konfigurasi Mail Queue
Pada langkah ini, konfigurasi pada driver queue. Jadi buka file .env dan tentukan driver queue database pada file ".env" seperti berikut:
QUEUE_CONNECTION=database
Kemudian buka terminal dan jalankan perintah berikut untuk tabel database queue:
php artisan queue:table
Selanjutnya, migrasi tabel ke database:
php artisan migrate
Langkah 7 – Bangun Job Queue Untuk Mengirim Email
Dalam langkah ini. buat job queque menggunakan perintah berikut:
php artisan make:job SendEmailJob
Kemudian buka file SendEmailJob.php yang ditempatkan pada direktori “app/Jobs”. Dan perbarui kode queue mail berikut ke dalamnya:
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Mail\SendEmailTest;
use Mail;
class SendEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $details;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($details)
{
$this->details = $details;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$email = new SendEmailTest();
Mail::to($this->details['email'])->send($email);
}
}
Langkah 8 – Jalankan Server Development
Pada langkah ini, gunakan perintah PHP artisan serve ini untuk memulai server Anda secara lokal:
php artisan serve
Kemudian buka browser dan jalankan URL berikut di atasnya:
http://127.0.0.1:8000/email-test
Cara mengirim email menggunakan queue pada contoh Laravel 8. Dalam tutorial ini, Anda telah belajar cara membuat class mailable di laravel 8. Dan menggunakan class ini tentang cara mengirim email di laravel 8.
laravel laravel 8 laravel queue example tutorial laravel mail queue tutorial