|

|  How to Send Emails with SendGrid API in Node.js

How to Send Emails with SendGrid API in Node.js

October 31, 2024

Discover how to send emails using SendGrid API in Node.js with our step-by-step guide. Perfect for developers looking to integrate email services.

How to Send Emails with SendGrid API in Node.js

 

Environment Setup

 

  • Ensure you have Node.js installed. You can check by running node -v, and if it's not installed, download it from the official Node.js website.
  • Initialize a Node.js project if you haven't already by running npm init -y in your terminal.
  • Install the SendGrid Node.js library by running the command below, which wraps the API integration in a more accessible way:

 

npm install --save @sendgrid/mail

 

Import and Configure SendGrid

 

  • Import the SendGrid library into your project file where you intend to send emails. Generally, this would be in an email utility file or a service layer file.
  • Set your SendGrid API key. It's recommended to store your API keys safely, often using environment variables. For testing, you can directly embed it, but remember to enhance security in production:

 

const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

 

Create an Email Payload

 

  • Define the email components consisting of the recipient, sender, subject, and content. You can add advanced parameters as needed, such as attachments or templates, for more complex use cases:

 

const msg = {
  to: 'recipient@example.com', // Change to your recipient
  from: 'sender@example.com', // Change to your verified sender
  subject: 'Hello from SendGrid',
  text: 'This is a plain text body.',
  html: '<strong>This is a formatted HTML body.</strong>',
};

 

Send the Email

 

  • Use the send() method provided by the SendGrid library to dispatch your email. This function returns a Promise for asynchronous operation; hence, you can utilize async/await or then/catch to handle the completion or failure of the sending process:

 

sgMail
  .send(msg)
  .then(() => {
    console.log('Email sent successfully!');
  })
  .catch((error) => {
    console.error(`Error sending email: ${error.response.body}`);
  });

 

Handling Errors and Dynamic Templates

 

  • To manage errors and debugging, make sure to handle exceptions gracefully. Check for common problems like invalid email addresses or API key issues.
  • For emails that require dynamic content, you can take advantage of SendGrid's dynamic templating by replacing the text and html fields with a templateId and dynamic data:

 

const templateMsg = {
  to: 'recipient@example.com',
  from: 'sender@example.com',
  templateId: 'your_template_id',
  dynamic_template_data: {
    name: 'Recipient Name',
    date: new Date().toLocaleDateString(),
  },
};

sgMail
  .send(templateMsg)
  .then(() => {
    console.log('Template email sent successfully!');
  })
  .catch((error) => {
    console.error(`Error sending template email: ${error.response.body}`);
  });

 

Rate Limiting and Throttling

 

  • If you plan on sending bulk emails or sending them frequently, be aware of SendGrid's rate limits and consider implementing delays between sends to avoid throttling or reaching your limit.
  • Leverage queuing solutions or third-party services like Bull or AWS SQS if you require more robust control over email dispatch rates.

 

const rateLimit = require('function-rate-limit');

const sendEmail = () => {
  sgMail
    .send(msg)
    .then(() => {
      console.log('Email sent successfully!');
    })
    .catch((error) => {
      console.error(`Error sending email: ${error.response.body}`);
    });
};

// Set a rate limit of 1 email per second
rateLimit(1, 1000, sendEmail);

 

Pre-order Friend AI Necklace

Pre-Order Friend Dev Kit

Open-source AI wearable
Build using the power of recall

Order Now

OMI AI PLATFORM
Remember Every Moment,
Talk to AI and Get Feedback

Omi Necklace

The #1 Open Source AI necklace: Experiment with how you capture and manage conversations.

Build and test with your own Omi Dev Kit 2.

Omi App

Fully Open-Source AI wearable app: build and use reminders, meeting summaries, task suggestions and more. All in one simple app.

Github →

Join the #1 open-source AI wearable community

Build faster and better with 3900+ community members on Omi Discord

Participate in hackathons to expand the Omi platform and win prizes

Participate in hackathons to expand the Omi platform and win prizes

Get cash bounties, free Omi devices and priority access by taking part in community activities

Join our Discord → 

OMI NECKLACE + OMI APP
First & only open-source AI wearable platform

a person looks into the phone with an app for AI Necklace, looking at notes Friend AI Wearable recorded a person looks into the phone with an app for AI Necklace, looking at notes Friend AI Wearable recorded
a person looks into the phone with an app for AI Necklace, looking at notes Friend AI Wearable recorded a person looks into the phone with an app for AI Necklace, looking at notes Friend AI Wearable recorded
online meeting with AI Wearable, showcasing how it works and helps online meeting with AI Wearable, showcasing how it works and helps
online meeting with AI Wearable, showcasing how it works and helps online meeting with AI Wearable, showcasing how it works and helps
App for Friend AI Necklace, showing notes and topics AI Necklace recorded App for Friend AI Necklace, showing notes and topics AI Necklace recorded
App for Friend AI Necklace, showing notes and topics AI Necklace recorded App for Friend AI Necklace, showing notes and topics AI Necklace recorded

OMI NECKLACE: DEV KIT
Order your Omi Dev Kit 2 now and create your use cases

Omi Dev Kit 2

Endless customization

OMI Necklace

$69.99

Make your life more fun with your AI wearable clone. It gives you thoughts, personalized feedback and becomes your second brain to discuss your thoughts and feelings. Available on iOS and Android.

Your Omi will seamlessly sync with your existing omi persona, giving you a full clone of yourself – with limitless potential for use cases:

  • Real-time conversation transcription and processing;
  • Develop your own use cases for fun and productivity;
  • Hundreds of community apps to make use of your Omi Persona and conversations.

Learn more

Omi Dev Kit 2: build at a new level

Key Specs

OMI DEV KIT

OMI DEV KIT 2

Microphone

Yes

Yes

Battery

4 days (250mAH)

2 days (250mAH)

On-board memory (works without phone)

No

Yes

Speaker

No

Yes

Programmable button

No

Yes

Estimated Delivery 

-

1 week

What people say

“Helping with MEMORY,

COMMUNICATION

with business/life partner,

capturing IDEAS, and solving for

a hearing CHALLENGE."

Nathan Sudds

“I wish I had this device

last summer

to RECORD

A CONVERSATION."

Chris Y.

“Fixed my ADHD and

helped me stay

organized."

David Nigh

OMI NECKLACE: DEV KIT
Take your brain to the next level

LATEST NEWS
Follow and be first in the know

Latest news
FOLLOW AND BE FIRST IN THE KNOW

San Francisco

team@basedhardware.com
Title

Company

About

Careers

Invest
Title

Products

Omi Dev Kit 2

Openglass

Other

App marketplace

Affiliate

Privacy

Customizations

Discord

Docs

Help