How to Send Mail Using SMTP (sendgrid) in PHP

Sending emails programmatically is a crucial functionality for many web applications. SMTP (Simple Mail Transfer Protocol) is a standard protocol used for sending emails over the internet. SendGrid is a popular email service provider that offers a reliable SMTP service. In this comprehensive guide, we will walk you through the process of sending emails using SendGrid's SMTP service in PHP.

Step 1: Sign up for SendGrid

Before we begin, you need to sign up for a SendGrid account. Go to the SendGrid website and sign up for a free account if you don't have one already. Once you've signed up, you'll have access to your SendGrid dashboard where you can obtain your SMTP credentials.

Step 2: Obtain SMTP Credentials

After signing in to your SendGrid account, navigate to the "Settings" section and select "API Keys" from the dropdown menu. Here, you can create a new API key specifically for SMTP or use an existing one. Once you've created the API key, make sure to copy the SMTP server, username, password, and port information provided by SendGrid. We'll use these credentials to configure our PHP script to send emails via SendGrid's SMTP server.

Step 3: Set up PHP Script

Now, let's create a PHP script that sends an email using SendGrid's SMTP server. Below is a sample PHP script that demonstrates how to send an email using SendGrid's SMTP service:


// Include the SendGrid library
require 'vendor/autoload.php';

// Import the required classes
use SendGrid\Mail\From;
use SendGrid\Mail\To;
use SendGrid\Mail\Mail;
use SendGrid\Content;

// Set your SendGrid API key

// Set up the email content
$from = new From("[email protected]", "Your Name");
$to = new To("[email protected]", "Recipient Name");
$subject = "Test Email via SendGrid SMTP";
$content = new Content("text/plain", "This is a test email sent via SendGrid SMTP in PHP.");

// Create a new SendGrid email object
$email = new Mail($from, $to, $subject, $content);

// Set up the SMTP connection parameters
$smtp = new \SendGrid\Mail\Smtp("", $apiKey);

// Send the email
$sendgrid = new \SendGrid($smtp);
try {
    $response = $sendgrid->send($email);
    echo "Email sent successfully!";
} catch (Exception $e) {
    echo "Email could not be sent. Error: {$e->getMessage()}";

In this script:

  • We include the SendGrid library using Composer's autoloader.
  • Set up the sender and recipient email addresses along with the email subject and content.
  • Create a new SendGrid email object and configure the SMTP connection parameters using the SendGrid API key.
  • Finally, attempt to send the email and handle any exceptions that may occur.

Step 4: Installing SendGrid Library via Composer

Before running the PHP script, ensure you have Composer installed on your system. If not, you can download and install Composer from Next, navigate to your project directory and run the following command to install the SendGrid library via Composer:

composer require sendgrid/sendgrid

Composer will download and install the SendGrid library and its dependencies into your project's `vendor` directory.

Step 5: Testing the Email Sending Script

php send_email.php

Save the PHP script in your project directory and replace `'YOUR_SENDGRID_API_KEY'` with your actual SendGrid API key obtained in Step 2. Run the PHP script using a web server that supports PHP or execute it via the command line: If everything is configured correctly, you should see a message indicating that the email has been sent successfully.


In this guide, we've explored how to send emails using SendGrid's SMTP service in PHP. By following the step-by-step instructions outlined in this tutorial, you can seamlessly integrate email functionality into your PHP applications using SendGrid's reliable SMTP service. Whether it's sending transactional emails, notifications, or marketing campaigns, SendGrid provides a robust platform for all your email delivery needs. Happy coding!