Laravel 9 Send Mail using Sendgrid Tutorial
Teams applying “Laravel 9 Send Mail using Sendgrid Tutorial” in a production project can use this workflow reference to record implementation, review and debugging time, then compare that effort with tests and shipped functionality instead of treating activity as performance by itself.
Before copying the example into a live application, confirm version-specific behaviour with the official Laravel website and test it against the project’s actual database and runtime.
May 13, 2022
Hi Guys,
In this tutorial, I will learn you how to send mail using sendgrid in laravel 9. you can easily and simply send mail sendgrid in laravel 9.
Sendgrid is a very popular API to send email from our laravel application. It is very fast to send mail and also you can track sent mail. Tracking email is a very important feature of Sendgrid api and you can also see how many users open your mail, and click on your mail too.
First we will add configration on mail. i added my gmail account configration. so first open .env file and bellow code:
Step 1: Download Laravel
Let us begin the tutorial by installing a new laravel application. if you have already created the project, then skip the following step.
composer create-project laravel/laravel example-app
Step 2: .env file
Check your .env file and configure these variables:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=123456
MAIL_ENCRYPTION=tls
Step 3: Add Mail
Next, you need to create a Mailable class, Laravel's CLI tool called Artisan makes that a simple feat. Open CLI, go to the project directory, and type:
php artisan make:mail sendGrid --markdown=emails.sendGrid
This command will create a new file under app/Mail/SendGrid.php and it should look something like this:
app/Mail/SendGrid.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class SendGrid extends Mailable
{
use Queueable, SerializesModels;
public $input;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($input)
{
$this->input = $input;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('emails.sendGrid')
->with([
'message' => $this->input['message'],
])
->from('[email protected]', 'Vector Global')
->subject($this->input['subject']);
}
}
Step 4: Add Route
Here, we need to add a simple route for postcontroller. so open your "routes/web.php" file and add the following route.
routes/web.php
<?php
use App\Http\Controllers\PostController;
/*
|--------------------------------------------------------------------------
| 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('mail/send-grid', [PostController::class, 'sendMail']);
Step 5: Add Controller
In this step, now we should create new controller as PostController. So run bellow command and create new controller.
php artisan make:controller PostController
So, let's copy bellow code and put on PostController.php file.
app/Http/Controllers/PostController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
use Illuminate\Http\Request;
use Validator;
use App\Mail\SendGrid;
class PostController extends Controller
{
/**
* Write code on Method
*
* @return response()
*/
public function sendMail(Requset $request)
{
$input = ['message' => 'This is a test!'];
Mail::to('[email protected]')->send(new SendGrid($input));
}
}
Step 6: Add Blade Files
In the last step. In this step, we have to create just a blade file. so we need to create only one blade file as a sendGrid.blade.php file.
resources/views/sendGrid.blade.php
@component('mail::message')
# Introduction
{{ $message }}
@component('mail::button', ['url' => ''])
Button Text
@endcomponent
Thanks,
{{ config('app.name') }}
@endcomponent
Run Laravel App:
All steps have been done, now you have to type the given command and hit enter to run the laravel app:
php artisan serve
Now, you have to open web browser, type the given URL and view the app output:
http://localhost:8000/mail/send-grid
It will help you...
- How to Notifications With database Driver in Laravel 11?
- How to Send Email Via Notification in Laravel 11?
- How to Install and Configure Laravel 11 Debugbar?
- How to Like Dislike System in Laravel 11?
- How to Paginate a Model with Relationship in Laravel 11?
- Laravel 11 Upload Files to Amazon S3 Example
- Laravel 11 Send WhatsApp Messages Example
- Laravel 11 Rest API Authentication Using JWT Tutorial