AWS SDK for JavaScript
Developer Guide for SDK v2

Working with Email Templates in Amazon SES

JavaScript code example that applies to Node.js execution

This Node.js code example shows:

  • Get a list of all of your email templates.

  • Retrieve and update email templates.

  • Create and delete email templates.

Amazon SES lets you send personalized email messages using email templates. For details on how to create and use email templates in Amazon Simple Email Service, see Sending Personalized Email Using the Amazon SES API in the Amazon Simple Email Service Developer Guide.

The Scenario

In this example, you use a series of Node.js modules to work with email templates. The Node.js modules use the SDK for JavaScript to create and use email templates using these methods of the AWS.SES client class:

Prerequisite Tasks

To set up and run this example, you must first complete these tasks:

Configuring the SDK

Configure the SDK for JavaScript by creating a global configuration object then setting the region for your code. In this example, the region is set to us-west-2.

// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'us-west-2'});

Listing Your Email Templates

In this example, use a Node.js module to create an email template to use with Amazon SES. Create a Node.js module with the file name ses_listtemplates.js. Configure the SDK as previously shown.

Create an object to pass the parameters for the listTemplates method of the AWS.SES client class. To call the listTemplates method, create a promise for invoking an Amazon SES service object, passing the parameters. Then handle the response in the promise callback.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create the promise and SES service object var templatePromise = new AWS.SES({apiVersion: '2010-12-01'}).listTemplates({MaxItems: ITEMS_COUNT}).promise(); // Handle promise's fulfilled/rejected states templatePromise.then( function(data) { console.log(data); }).catch( function(err) { console.error(err, err.stack); });

To run the example, type the following at the command line. Amazon SES returns the list of templates.

node ses_listtemplates.js

This sample code can be found here on GitHub.

Getting an Email Template

In this example, use a Node.js module to get an email template to use with Amazon SES. Create a Node.js module with the file name ses_gettemplate.js. Configure the SDK as previously shown.

Create an object to pass the TemplateName parameter for the getTemplate method of the AWS.SES client class. To call the getTemplate method, create a promise for invoking an Amazon SES service object, passing the parameters. Then handle the response in the promise callback.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create the promise and SES service object var templatePromise = new AWS.SES({apiVersion: '2010-12-01'}).getTemplate({TemplateName: 'TEMPLATE_NAME'}).promise(); // Handle promise's fulfilled/rejected states templatePromise.then( function(data) { console.log(data.SubjectPart); }).catch( function(err) { console.error(err, err.stack); });

To run the example, type the following at the command line. Amazon SES returns the template details.

node ses_gettemplate.js

This sample code can be found here on GitHub.

Creating an Email Template

In this example, use a Node.js module to create an email template to use with Amazon SES. Create a Node.js module with the file name ses_createtemplate.js. Configure the SDK as previously shown.

Create an object to pass the parameters for the createTemplate method of the AWS.SES client class, including TemplateName, HtmlPart, SubjectPart, and TextPart. To call the createTemplate method, create a promise for invoking an Amazon SES service object, passing the parameters. Then handle the response in the promise callback.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create createTemplate params var params = { Template: { TemplateName: 'TEMPLATE_NAME', /* required */ HtmlPart: 'HTML_CONTENT', SubjectPart: 'SUBJECT_LINE', TextPart: 'TEXT_CONTENT' } }; // Create the promise and SES service object var templatePromise = new AWS.SES({apiVersion: '2010-12-01'}).createTemplate(params).promise(); // Handle promise's fulfilled/rejected states templatePromise.then( function(data) { console.log(data); }).switch( function(err) { console.error(err, err.stack); });

To run the example, type the following at the command line. The template is added to Amazon SES.

node ses_createtemplate.js

This sample code can be found here on GitHub.

Updating an Email Template

In this example, use a Node.js module to create an email template to use with Amazon SES. Create a Node.js module with the file name ses_updatetemplate.js. Configure the SDK as previously shown.

Create an object to pass the Template parameter values you want to update in the template, with the required TemplateName parameter passed to the updateTemplate method of the AWS.SES client class. To call the updateTemplate method, create a promise for invoking an Amazon SES service object, passing the parameters. Then handle the response in the promise callback.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create updateTemplate parameters var params = { Template: { TemplateName: 'TEMPLATE_NAME', /* required */ HtmlPart: 'HTML_CONTENT', SubjectPart: 'SUBJECT_LINE', TextPart: 'TEXT_CONTENT' } }; // Create the promise and SES service object var templatePromise = new AWS.SES({apiVersion: '2010-12-01'}).updateTemplate(params).promise(); // Handle promise's fulfilled/rejected states templatePromise.then( function(data) { console.log("Template Updated"); }).switch( function(err) { console.error(err, err.stack); });

To run the example, type the following at the command line. Amazon SES returns the template details.

node ses_updatetemplate.js

This sample code can be found here on GitHub.

Deleting an Email Template

In this example, use a Node.js module to create an email template to use with Amazon SES. Create a Node.js module with the file name ses_deletetemplate.js. Configure the SDK as previously shown.

Create an object to pass the requiredTemplateName parameter to the deleteTemplate method of the AWS.SES client class. To call the deleteTemplate method, create a promise for invoking an Amazon SES service object, passing the parameters. Then handle the response in the promise callback.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create the promise and SES service object var templatePromise = new AWS.SES({apiVersion: '2010-12-01'}).deleteTemplate({TemplateName: 'TEMPLATE_NAME'}).promise(); // Handle promise's fulfilled/rejected states templatePromise.then( function(data) { console.log("Template Deleted"); }).catch( function(err) { console.error(err, err.stack); });

To run the example, type the following at the command line. Amazon SES returns the template details.

node ses_deletetemplate.js

This sample code can be found here on GitHub.