How To Send Email Using SendGrid In Laravel 9
In this article, we will see how to send email using SendGrid in laravel 9. Laravel provides a clean API over the popular SwiftMailer library with drivers for SMTP, PHP’s mail
, sendmail
and more. For this example, we'll be sending an email with SendGrid using the SMTP Driver. SendGrid is a cloud-based SMTP provider that allows you to send email without having to maintain email servers.
SendGrid Documentation: Send Email with Laravel & SendGrid | Twilio
So, let’s see, laravel 9 send email using SendGrid, and send mail in laravel 9 using SendGrid.
Step 1: Setup .env file
In this step, we will configure the .env file.
MAIL_MAILER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=sendgrid_api_key
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="Websolutionstuff"
MAIL_FROM_ADDRESS=from@example.com
You can send 100 messages per SMTP connection
at a time.
Read Also: Laravel 9 Foreach Loop Variable Example
Step 2: Create Mailable
Next, you need to create a Mailable class using the below command.
php artisan make:mail TestEmail
This command will create a new file under app/Mail/TestEmail.php
and it's looks like this.
<?phpnamespace App\Mail;use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;class TestEmail extends Mailable
{
use Queueable, SerializesModels; public $data; public function __construct($data)
{
$this->data = $data;
} public function build()
{
$address = 'janedeo@example.com';
$subject = 'This is a demo!';
$name = 'Jane Doe'; return $this->view('emails.test')
->from($address, $name)
->cc($address, $name)
->bcc($address, $name)
->replyTo($address, $name)
->subject($subject)
->with([ 'test_message' => $this->data['message'] ]);
}
}
Read Also: Laravel 9 Pluck Method Example
Step 3: Create Blade File
Let’s create a file under app/resources/views/emails/test.blade.php
and add this code.
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
</head>
<body>
<h2>How To Send Email Using SendGrid In Laravel 9 - Websolutionstuff</h2>
<p>{{ $test_message }}</p>
</body>
</html>
Step 4: Sending Mail
In this step, we will use a mailable class and send a test mail.
<?php
use App\Mail\TestEmail; $data = ['message' => 'This is a test!']; Mail::to('john@example.com')->send(new TestEmail($data));
You might also like: