How To Use Sendgrid In Laravel

In this blog post, we will discuss the method of incorporating SendGrid into Laravel, a popular PHP web application framework. SendGrid is a well-known cloud-based tool that aids in the efficient delivery of transactional and promotional emails.

Prerequisites

Before delving into how to use SendGrid, you’ll need the following:

  • A Laravel application
  • A SendGrid account

Step 1: Install Guzzle HTTP Client

Guzzle is a PHP HTTP client that makes it simple to send HTTP requests. We will be using this to interact with the SendGrid API.

To install Guzzle, run the following command in your Laravel project:

composer require guzzlehttp/guzzle

Step 2: Set up your SendGrid Account

Head to the SendGrid website and create an account. Once you’re logged in, you’ll need to create an API key. This key gives your Laravel application the necessary permissions to send emails through your SendGrid account. Once you’ve created the API key, don’t forget to keep it safe, as you won’t be able to retrieve it again.

Step 3: Configure Laravel to Use SendGrid

Next, you’ll need to tell Laravel to use SendGrid as the mail driver. This can be done by editing the .env file in your Laravel project.

Locate the mail configuration section and update the values as follows:

MAIL_MAILER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email_address
MAIL_FROM_NAME="${APP_NAME}"

Make sure to replace your_sendgrid_api_key with the actual API Key generated from SendGrid and your_email_address with the email you want to send emails from.

Step 4: Send Emails

Now that everything is set up, you can use Laravel’s built-in Mail facade to send emails. Here is a simple way to send an email:

use Illuminate\Support\Facades\Mail;

Mail::raw('This is the email content', function ($message) {
    $message->to('email@example.com');
    $message->subject('This is the email subject');
});

Conclusion

With SendGrid configured correctly within your Laravel application, you can now send emails with ease. Leveraging SendGrid’s robust platform can dramatically increase the deliverability of your emails, ensuring that your messages reach their intended recipients. Happy emailing!