What is @sendgrid/helpers?
@sendgrid/helpers is a utility library for the SendGrid API that provides helper functions to simplify the process of building and sending emails, managing contacts, and handling other email-related tasks.
What are @sendgrid/helpers's main functionalities?
Building and Sending Emails
This feature allows you to build and send emails using the SendGrid API. The code sample demonstrates how to set up the API key, create an email message, and send it.
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
to: 'test@example.com',
from: 'test@example.com',
subject: 'Sending with SendGrid is Fun',
text: 'and easy to do anywhere, even with Node.js',
html: '<strong>and easy to do anywhere, even with Node.js</strong>',
};
sgMail.send(msg).then(() => {
console.log('Email sent');
}).catch((error) => {
console.error(error);
});
Managing Contacts
This feature allows you to manage contacts in your SendGrid account. The code sample demonstrates how to add a contact using the SendGrid API.
const sgClient = require('@sendgrid/client');
sgClient.setApiKey(process.env.SENDGRID_API_KEY);
const request = {
method: 'PUT',
url: '/v3/marketing/contacts',
body: {
contacts: [
{
email: 'test@example.com',
first_name: 'Test',
last_name: 'User'
}
]
}
};
sgClient.request(request).then(([response, body]) => {
console.log(response.statusCode);
console.log(body);
}).catch((error) => {
console.error(error);
});
Handling Email Templates
This feature allows you to create and manage email templates. The code sample demonstrates how to create a new email template using the SendGrid API.
const sgClient = require('@sendgrid/client');
sgClient.setApiKey(process.env.SENDGRID_API_KEY);
const request = {
method: 'POST',
url: '/v3/templates',
body: {
name: 'Example Template'
}
};
sgClient.request(request).then(([response, body]) => {
console.log(response.statusCode);
console.log(body);
}).catch((error) => {
console.error(error);
});
Other packages similar to @sendgrid/helpers
nodemailer
Nodemailer is a module for Node.js applications to allow easy email sending. It is a popular alternative to @sendgrid/helpers and provides a wide range of features for sending emails, including support for various transport methods like SMTP, AWS SES, and more.
mailgun-js
Mailgun-js is a client library for the Mailgun email service. It provides similar functionalities to @sendgrid/helpers, such as sending emails, managing mailing lists, and handling email templates. It is a good alternative for those who prefer using Mailgun over SendGrid.
emailjs
EmailJS is a library for sending emails from JavaScript applications. It supports various transport methods and provides a simple API for sending emails. It is a lightweight alternative to @sendgrid/helpers and is suitable for basic email sending needs.
![npm version](https://badge.fury.io/js/%40sendgrid%2Fclient.svg)
This package is part of a monorepo, please see this README for details.
Support classes and helpers for the SendGrid NodeJS libraries
This is a collection of classes and helpers used internally by the
SendGrid NodeJS libraries.
Note that not all objects represented in the SendGrid API have helper classes assigned to them because it is not expected that developers will use these classes themselves. They are primarily for internal use and developers are expected to use the publicly exposed API in the various endpoint services.
Mail class
Used to compose a Mail
object that converts itself to proper JSON for use with the SendGrid v3 API. This class supports a slightly different API to make sending emails easier in many cases by not having to deal with personalization arrays, instead offering a more straightforward interface for composing emails.
Attachment class
Used by the inbound mail parser to compose Attachment
objects.
Personalization class
Used by the Mail class to compose Personalization
objects.
Email address
Helper
class to represent an email address with name/email. Used by both the Mail
and Personalization
classes to deal with email addresses of various formats.
Helpers
Internal helpers that mostly speak for themselves.
How to Contribute
We encourage contribution to our libraries (you might even score some nifty swag), please see our CONTRIBUTING guide for details.
About
@sendgrid/helpers are maintained and funded by Twilio SendGrid, Inc. The names and logos for @sendgrid/helpers are trademarks of Twilio SendGrid, Inc.
If you need help installing or using the library, please check the Twilio SendGrid Support Help Center.
If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
![Twilio SendGrid Logo](https://github.com/sendgrid/sendgrid-nodejs/blob/main/twilio_sendgrid_logo.png?raw=true)