ahmadajah03 Tue Apr 2020 1 year ago

Contoh Send Email Menggunakan Queue pada Laravel 7/6

Sekarang, mari kita lihat posting tentang bagaimana menggunakan Queue di laravel 7/6. Kami akan menggunakan cara mengirim email menggunakan Queue di laravel 7/6. Anda dapat dengan mudah mengirim email dengan Queue laravel 7/6. saya ingin menunjukkan contoh Queue laravel 7/6. ikuti langkah di bawah ini untuk mengirim email menggunakan Queue di laravel 7/6.

Kadang-kadang, Anda melihat beberapa proses mengambil waktu untuk memuat seperti mengirim email, gateway pembayaran dll. Ketika Anda mengirim email untuk verifikasi atau mengirim faktur maka itu memuat waktu untuk mengirim email karena ini adalah layanan. Jika Anda tidak ingin menunggu pengguna mengirim email atau proses lain pada proses pemuatan sisi server maka Anda dapat menggunakan antrian. karena sangat cepat dan pengunjung akan senang melihat waktu pemuatan.

Di sini, saya akan membagikan contoh yang sangat sederhana untuk membuat Queue dengan driver basis data untuk pengiriman email pengujian. Anda pasti bisa memahami cara kerja Queue dan cara mudahnya. Jika Anda belum pernah menggunakan sebelumnya maka jangan khawatir, di sini jika dari pati dan sangat sederhana.

Langkah 1: Setup Laravel 6

pertama-tama kita perlu mendapatkan aplikasi versi Laravel 6 baru menggunakan perintah di bawah ini, Jadi buka terminal ATAU command prompt Anda dan jalankan perintah di bawah:

composer create-project --prefer-dist laravel/laravel blog

Langkah 2: Buat Pengaturan Email

Kami beralih dari nol dan pada langkah pertama, kami akan membuat email untuk pengujian menggunakan fasad Laravel Mail. Jadi mari kita jalankan perintah sederhana di bawah ini.

php artisan make:mail SendEmailTest

Sekarang Anda akan memiliki folder baru "Mail" di direktori aplikasi dengan file SendEmailTest.php. Jadi mari kita salin kode di bawah ini dan lewati pada file itu.

app/Mail/SendEmailTest.php

<?php
  
namespace App\Mail;
  
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
  
class SendEmailTest 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('emails.test');
    }
}

Oke, sekarang kita perlu membuat tampilan email menggunakan file blade. Jadi kita akan membuat file tampilan sederhana dan menyalin kode di bawah ini om path berikut.

resources/views/email/test.blade.php

<!DOCTYPE html>
<html>
<head>
  <title>How to send mail using queue in Laravel 6? - Medikre.com</title>
</head>
<body>
   
<center>
<h2 style="padding: 23px;background: #b3deb8a1;border-bottom: 6px green solid;">
  <a href="https://medikre.com">Visit Our Website : Medikre.com</a>
</h2>
</center>
  
<p>Hi, Sir</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  
<strong>Thank you Sir. :)</strong>
  
</body>
</html>

setelah konfigurasi file blade, kita harus mengatur untuk pengiriman email, Jadi mari kita atur konfigurasi dalam file .env:

.env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=123456
MAIL_ENCRYPTION=tls

Langkah 3: Konfigurasi Queue

Sekarang pada langkah selanjutnya, kita akan membuat konfigurasi pada Queue antrian jadi pertama-tama, kita akan mengatur "database" driver antrian. Anda dapat mengatur seperti yang Anda inginkan juga kami akan mendefinisikan driver sebagai redis juga. Jadi di sini tentukan driver database pada file ".env":

.env

QUEUE_CONNECTION=database

Setelah itu kita perlu membuat migrasi dan membuat tabel untuk antrian. Jadi mari kita jalankan perintah di bawah ini untuk tabel database Queue :

Generate Migration:

php artisan queue:table

Run Migration:

php artisan migrate

Langkah 4: Create Queue Job

sekarang kita akan membuat perintah queue job bey following, perintah ini akan membuat file queue job dengan Queueable. Jadi mari kita jalankan perintah di bawah ini:

php artisan make:job SendEmailJob

sekarang Anda memiliki file SendEmailJob.php di direktori "Jobs". Jadi mari kita lihat file itu dan letakkan kode di bawahnya pada file itu.

app/Jobs/SendEmailJob.php

<?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 5: Test Queue Job

Sekarang waktu digunakan dan menguji queue job yang dibuat, jadi mari kita buat route dengan kode berikut untuk menguji queue yang dibuat.

routes/web.php

Route::get('email-test', function(){
  
    $details['email'] = '[email protected]';
  
    dispatch(new App\Jobs\SendEmailJob($details));
  
    dd('done');
});

Ok route didefinisikan, Anda dapat melihat proses queue menggunakan perintah queue laravel, jadi mari kita jalankan perintah di bawah ini:

php artisan queue:listen

Anda akan melihat tata letak seperti di bawah jika queue berfungsi:

Anda juga dapat menghapus cache config menggunakan perintah di bawah ini:

php artisan config:clear

Sekarang Anda dapat menjalankan proyek menggunakan perintah di bawah ini:

php artisan serve

Sekarang jalankan proyek Anda dan tautan di bawah ini:

http://localhost:8000/email-test

Saya harap ini dapat membantu Anda ....

laravel queue send mail laravel