Managing Amazon SES identities - AWS SDK for JavaScript

Help us improve the AWS SDK for JavaScript version 3 (V3) documentation by providing feedback using the Feedback link, or create an issue or pull request on GitHub.

The AWS SDK for JavaScript V3 API Reference Guide describes in detail all the API operations for the AWS SDK for JavaScript version 3 (V3).

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 an AWS Identity and Access Management (IAM) policy to your Amazon SES identities.

  • How to list all Amazon SES identities for your AWS 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 SES client class:

Prerequisite tasks

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

  • Set up the project environment to run these Node TypeScript examples, and install the required AWS SDK for JavaScript and third-party modules. Follow the instructions on GitHub.

  • Create a shared configurations file with your user credentials. For more information about providing a credentials JSON file, see Loading credentials in Node.js from the shared credentials file.

Important

These examples demonstrate how to import/export client service objects and command using ECMAScript6 (ES6).

Listing your identities

In this example, use a Node.js module to list email addresses and domains to use with Amazon SES.

Create a libs directory, and create a Node.js module with the file name sesClient.js. Copy and paste the code below into it, which creates the Amazon SES client object. Replace REGION with your AWS Region.

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

This example code can be found here on GitHub.

Create a Node.js module with the file name ses_listidentities.js. Configure the SDK as previously shown, including installing the required clients and packages.

Create an object to pass the IdentityType and other parameters for the ListIdentitiesCommand method of the SES client class. To call the ListIdentitiesCommand method, invoke an Amazon SES service object, passing the parameters object.

The data returned contains an array of domain identities as specified by the IdentityType parameter.

Note

Replace IDENTITY_TYPE with the identity type, which can be "EmailAddress" or "Domain".

// Import required AWS SDK clients and commands for Node.js import { ListIdentitiesCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters var params = { IdentityType: "EmailAddress", // IDENTITY_TYPE: "EmailAddress' or 'Domain' MaxItems: 10, }; const run = async () => { try { const data = await sesClient.send(new ListIdentitiesCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

To run the example, enter the following at the command prompt.

node ses_listidentities.js

This example 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 libs directory, and create a Node.js module with the file name sesClient.js. Copy and paste the code below into it, which creates the Amazon SES client object. Replace REGION with your AWS Region.

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

This example code can be found here on GitHub.

Create a Node.js module with the file name ses_verifyemailidentity.js. Configure the SDK as previously shown, including downloading the required clients and packages.

Create an object to pass the EmailAddress parameter for the VerifyEmailIdentityCommand method of the SES client class. To call the VerifyEmailIdentityCommand method, invoke an Amazon SES client service object, passing the parameters.

Note

Replace ADDRESS@DOMAIN.EXT with the email address, such as name@example.com.

// Import required AWS SDK clients and commands for Node.js import { VerifyEmailIdentityCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters const params = { EmailAddress: "ADDRESS@DOMAIN.EXT" }; //ADDRESS@DOMAIN.EXT; e.g., name@example.com const run = async () => { try { const data = await sesClient.send(new VerifyEmailIdentityCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

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

node ses_verifyemailidentity.js

This example 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 libs directory, and create a Node.js module with the file name sesClient.js. Copy and paste the code below into it, which creates the Amazon SES client object. Replace REGION with your AWS Region.

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

This example code can be found here on GitHub.

Create a Node.js module with the file name ses_verifydomainidentity.js. Configure the SDK as previously shown, including installing the required clients and packages.

Create an object to pass the Domain parameter for the VerifyDomainIdentityCommand method of the SES client class. To call the VerifyDomainIdentityCommand method, invoke an Amazon SES client service object, passing the parameters object.

Note

This example imports and uses the required AWS Service V3 package clients, V3 commands, and uses the send method in an async/await pattern. You can create this example using V2 commands instead by making some minor changes. For details, see Using V3 commands.

Note

Replace AMI_ID with the ID of the Amazon Machine Image (AMI) to run, and KEY_PAIR_NAME of the key pair to assign to the AMI ID.

// Import required AWS SDK clients and commands for Node.js import { VerifyDomainIdentityCommand, } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters const params = { Domain: "DOMAIN_NAME" }; //DOMAIN_NAME const run = async () => { try { const data = await sesClient.send(new VerifyDomainIdentityCommand(params)); console.log("Success", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

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

node ses_verifydomainidentity.js

This example 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 libs directory, and create a Node.js module with the file name sesClient.js. Copy and paste the code below into it, which creates the Amazon SES client object. Replace REGION with your AWS Region.

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

This example code can be found here on GitHub.

Create a Node.js module with the file name ses_deleteidentity.js. Configure the SDK as previously shown, including installing the required clients and packages.

Create an object to pass the Identity parameter for the DeleteIdentityCommand method of the SES client class. To call the DeleteIdentityCommand method, create a request for invoking an Amazon SES client service object, passing the parameters.

Note

This example imports and uses the required AWS Service V3 package clients, V3 commands, and uses the send method in an async/await pattern. You can create this example using V2 commands instead by making some minor changes. For details, see Using V3 commands.

Note

Replace IDENTITY_TYPE with the identity type to be deleted, and IDENTITY_NAME with the name of the identity to be deleted.

// Import required AWS SDK clients and commands for Node.js import { DeleteIdentityCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters const params = { IdentityType: "IDENTITY_TYPE", // IDENTITY_TYPE - i.e., 'EmailAddress' or 'Domain' Identity: "IDENTITY_NAME", }; // IDENTITY_NAME const run = async () => { try { const data = await sesClient.send(new DeleteIdentityCommand(params)); console.log("Success", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

To run the example, enter the following at the command prompt.

node ses_deleteidentity.js

This example code can be found here on GitHub.