|

|  How to Send Emails Using Amazon SES API in Node.js

How to Send Emails Using Amazon SES API in Node.js

October 31, 2024

Learn to send emails with the Amazon SES API in Node.js. This guide covers setup, coding, and best practices for seamless integration.

How to Send Emails Using Amazon SES API in Node.js

 

Set Up AWS SDK for Node.js

 

  • To begin using Amazon SES (Simple Email Service) with Node.js, you'll need to install the AWS SDK for JavaScript in Node.js. This library empowers you to interact with AWS services programmatically.
  •  

  • Run the following command in your project directory:

 

npm install aws-sdk

 

Configure AWS SDK

 

  • After installing the AWS SDK, you need to configure it with your AWS credentials and the region where your SES is hosted. Ensure that you replace `YOUR_ACCESS_KEY_ID`, `YOUR_SECRET_ACCESS_KEY`, and `YOUR_REGION` with your actual AWS credentials.

 

const AWS = require('aws-sdk');

AWS.config.update({
   accessKeyId: 'YOUR_ACCESS_KEY_ID',
   secretAccessKey: 'YOUR_SECRET_ACCESS_KEY',
   region: 'YOUR_REGION'
});

 

Create an SES Service Object

 

  • Create an instance of the SES service object, which you will use to send emails. This object provides methods to interact with the SES API.

 

const ses = new AWS.SES({ apiVersion: '2010-12-01' });

 

Set Up the Email Parameters

 

  • Define the parameters for your email, including the source email address, destination addresses, subject, and body content. Here’s an example of how to set up a simple email with HTML content:

 

const emailParams = {
   Source: 'your-email@example.com',
   Destination: {
      ToAddresses: ['recipient@example.com']
   },
   Message: {
      Subject: {
         Data: 'Test Email',
      },
      Body: {
         Html: {
            Data: '<h1>Hello from Amazon SES</h1><p>This is a test email sent using Amazon SES</p>'
         }
      }
   }
};

 

Send the Email

 

  • Use the `sendEmail` method of the SES object to send your email. Handle the response to determine if the email was sent successfully or if there were any errors.

 

ses.sendEmail(emailParams, (err, data) => {
   if (err) {
      console.error("Error sending email:", err);
   } else {
      console.log("Email sent successfully:", data);
   }
});

 

Additional Notes

 

  • Amazon SES requires email addresses or domains to be verified if you are operating in the SES sandbox environment. Make sure you have completed necessary verifications before sending emails.
  •  

  • Ensure that you have the correct IAM role permissions to use the SES service in your AWS account.
  •  

  • If you need to send emails to multiple recipients, you can add them to the `ToAddresses`, `CcAddresses`, or `BccAddresses` lists in the `Destination` object.
  •  

  • For production use, consider handling email errors like rate limits, invalid email formats, and managing bounce notifications using Amazon SNS (Simple Notification Service).