Laravel 10 Send Bulk Mail Using Queue

Websolutionstuff | Mar-13-2023 | Categories : Laravel PHP

In this article, we will see laravel 10 send bulk mail using a queue. Here, we will learn about how to send bulk mail using a queue in laravel 10. Laravel queue is used for sending bulk mail with a background process. 

As we know if we are sending single mail in the laravel application it is working properly without taking more time but if you want to send multiple emails in laravel then it will take too much time and also you can not do any operation during this time periods.

So, let's see how to send bulk mail using a queue in laravel 10, how to send bulk mail in laravel 10 using a queue, laravel 10 send an email, and send mail in laravel 10.

Step 1: Install Laravel 10

 In this step, we will install laravel 10 using the following command.

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


Step 2: Update .env File

Now, we will set up the mail configuration in the .env file as below. Here we have used So, you can use it as per your requirements.





 Step 3: Create Route

In this step, we will create routes for sending bulk mail using the queue.

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\SendMailController;
| Web Routes
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
Route::get('send/mail', [SendMailController::class, 'sendMail'])->name('send_mail');


Step 4: Create Queue Table

Now, we will create a jobs table in the database. So, copy the below command and run it in your terminal.

php artisan queue:table

php artisan migrate‚Äč


Step 5: Create Controller 

In this step, we will create SendMailController using the following command.

php artisan make:controller SendMailController



namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SendMailController extends Controller
    public function sendMail(Request $request)
    	$details = [
    		'subject' => 'Test Notification'
        $job = (new \App\Jobs\SendQueueEmail($details))

        echo "Mail send successfully !!";



Step 6: Create Job

Now, we will create the SendQueueEmail.php file using the following command.

php artisan make:job SendQueueEmail



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\User;
use Mail;

class SendQueueEmail implements ShouldQueue
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
    protected $details;
    public $timeout = 7200; // 2 hours

     * Create a new job instance.
     * @return void
    public function __construct($details)
        $this->details = $details;

     * Execute the job.
     * @return void
    public function handle()
        $data = User::all();
        $input['subject'] = $this->details['subject'];

        foreach ($data as $key => $value) {

            $input['name'] = $value->name;
            $input['email'] = $value->email;

            \Mail::send('mail.mailExample', [], function($message) use($input){
                $message->to($input['email'], $input['name'])


Step  7: Create Mail Blade

In this step, we will create a mailExample.blade.php file. So, add the following code to that file.


Hi <br/>
This is Test Mail.<br />
Thank you !!

And run the below command in your terminal to send manually mail.

php artisan queue:listen






You might also like:

Recommended Post
Featured Post
Laravel 8 Left Join Query Example
Laravel 8 Left Join Query Exam...

In this tutorial I will give you laravel 8 left join query example. laravel left join eloquent returns all rows from the...

Read More


How To Reset Modal Form In jQuery
How To Reset Modal Form In jQu...

Have you ever seen those pop-up boxes on websites? They're called modal forms, and they make it easier to do things...

Read More


Laravel 10 Desktop and Mobile User Agent Parser
Laravel 10 Desktop and Mobile...

Discover the magic of Laravel 10's Desktop and Mobile User Agent Parser! With the help of the jenssegers/agent packa...

Read More


Laravel 8 Datatables Filter with Dropdown
Laravel 8 Datatables Filter wi...

In this example we will see laravel 8 datatables filter with dropdown, Here we will add datatables custom...

Read More