Managing Amazon SES Identities - Amazon SDK for JavaScript
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

We announced the upcoming end-of-support for Amazon SDK for JavaScript v2. We recommend that you migrate to Amazon SDK for JavaScript v3. For dates, additional details, and information on how to migrate, please refer to the linked announcement.

Managing Amazon SES Identities

JavaScript code example that applies to Node.js execution

This Node.js code example shows:

  • How to verify email addresses and domains used with Amazon SES.

  • How to assign IAM policy to your Amazon SES identities.

  • How to list all Amazon SES identities for your Amazon account.

  • How to delete identities used with Amazon SES.

An Amazon SES identity is an email address or domain that Amazon SES uses to send email. Amazon SES requires you to verify your email identities, confirming that you own them and preventing others from using them.

For details on how to verify email addresses and domains in Amazon SES, see Verifying Email Addresses and Domains in Amazon SES in the Amazon Simple Email Service Developer Guide. For information about sending authorization in Amazon SES, see Overview of Amazon SES Sending Authorization .

The Scenario

In this example, you use a series of Node.js modules to verify and manage Amazon SES identities. The Node.js modules use the SDK for JavaScript to verify email addresses and domains, 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 Identities

In this example, use a Node.js module to list email addresses and domains to use with Amazon SES. Create a Node.js module with the file name ses_listidentities.js. Configure the SDK as previously shown.

Create an object to pass the IdentityType and other parameters for the listIdentities method of the AWS.SES client class. To call the listIdentities method, create a promise for invoking an Amazon SES service object, passing the parameters object.

Then handle the response in the promise callback. The data returned by the promise contains an array of domain identities as specified by the IdentityType parameter.

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

To run the example, type the following at the command line.

node ses_listidentities.js

This sample code can be found here on GitHub.

Verifying an Email Address Identity

In this example, use a Node.js module to verify email senders to use with Amazon SES. Create a Node.js module with the file name ses_verifyemailidentity.js. Configure the SDK as previously shown. To access Amazon SES, create an AWS.SES service object.

Create an object to pass the EmailAddress parameter for the verifyEmailIdentity method of the AWS.SES client class. To call the verifyEmailIdentity 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 region AWS.config.update({ region: "REGION" }); // Create promise and SES service object var verifyEmailPromise = new AWS.SES({ apiVersion: "2010-12-01" }) .verifyEmailIdentity({ EmailAddress: "ADDRESS@DOMAIN.EXT" }) .promise(); // Handle promise's fulfilled/rejected states verifyEmailPromise .then(function (data) { console.log("Email verification initiated"); }) .catch(function (err) { console.error(err, err.stack); });

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

node ses_verifyemailidentity.js

This sample code can be found here on GitHub.

Verifying a Domain Identity

In this example, use a Node.js module to verify email domains to use with Amazon SES. Create a Node.js module with the file name ses_verifydomainidentity.js. Configure the SDK as previously shown.

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

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

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

node ses_verifydomainidentity.js

This sample code can be found here on GitHub.

Deleting Identities

In this example, use a Node.js module to delete email addresses or domains used with Amazon SES. Create a Node.js module with the file name ses_deleteidentity.js. Configure the SDK as previously shown.

Create an object to pass the Identity parameter for the deleteIdentity method of the AWS.SES client class. To call the deleteIdentity method, create a request 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 region AWS.config.update({ region: "REGION" }); // Create the promise and SES service object var deletePromise = new AWS.SES({ apiVersion: "2010-12-01" }) .deleteIdentity({ Identity: "DOMAIN_NAME" }) .promise(); // Handle promise's fulfilled/rejected states deletePromise .then(function (data) { console.log("Identity Deleted"); }) .catch(function (err) { console.error(err, err.stack); });

To run the example, type the following at the command line.

node ses_deleteidentity.js

This sample code can be found here on GitHub.