How To Integrate Sendgrid In Laravel

“Email serves as a crucial tool for business communication in today’s digital landscape. This blog post will explore the integration process of SendGrid, a well-known cloud-based email delivery platform, into a Laravel application.”

Prerequisites

  • Laravel application installed on your server
  • A SendGrid Account

Installation of SendGrid PHP Library

The first step is to install the SendGrid PHP library, which is the official SendGrid-led, community-driven PHP library. We’ll use Composer, a popular dependency management tool for PHP. Run the following command:

  composer require sendgrid/sendgrid
  

Configuration in Laravel

Once the SendGrid PHP library is installed, we’ll need to configure our Laravel application to use SendGrid as our mail driver. Open the .env file in your Laravel root directory and define the following variables:

  MAIL_DRIVER=smtp
  MAIL_HOST=smtp.sendgrid.net
  MAIL_PORT=587
  MAIL_USERNAME=your_SendGrid_username
  MAIL_PASSWORD=your_SendGrid_password
  MAIL_ENCRYPTION=tls
  MAIL_FROM_ADDRESS=your_email_address
  MAIL_FROM_NAME=your_name
  

Be sure to replace your_SendGrid_username, your_SendGrid_password, your_email_address, and your_name with your actual SendGrid username, password, and your email address and name.

Sending an Email

Laravel uses Mailable classes to compose emails. Let’s create a Mailable class using the following Artisan command:

  php artisan make:mail WelcomeMail
  

This will create a new class in the app/Mail directory. Open this file and you should see a build function, in which you can define your email’s subject, view, and data. Here’s an example:

  public function build()
  {
      return $this->view('emails.welcome')
                  ->subject('Welcome to Our Website');
  }
  

The view method is used to specify the HTML email template, which should be located in the resources/views/emails directory.

Now, let’s see how to send an instance of this Mailable class. Laravel’s Mail facade provides a simple method, send:

  Mail::send(new WelcomeMail($data));
  

And there you have it! Your Laravel application is now set up to send emails via SendGrid.

Conclusion

Integrating SendGrid with Laravel is a straightforward process that significantly enhances your application’s ability to send emails. With the power and reliability of SendGrid, you can rest assured that your emails will arrive in your users’ inboxes.