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).

The Amazon SDK for JavaScript V3 API Reference Guide describes in detail all the API operations for the Amazon 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 Amazon Identity and Access Management (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 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 Amazon 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 shared credentials file, see Shared config and credentials files in the Amazon SDKs and Tools Reference Guide.

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 Amazon Region.

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "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 { ListIdentitiesCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; const createListIdentitiesCommand = () => new ListIdentitiesCommand({ IdentityType: "EmailAddress", MaxItems: 10 }); const run = async () => { const listIdentitiesCommand = createListIdentitiesCommand(); try { return await sesClient.send(listIdentitiesCommand); } catch (err) { console.log("Failed to list identities.", err); return err; } };

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 Amazon Region.

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "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"; const EMAIL_ADDRESS = "name@example.com"; const createVerifyEmailIdentityCommand = (emailAddress) => { return new VerifyEmailIdentityCommand({ EmailAddress: emailAddress }); }; const run = async () => { const verifyEmailIdentityCommand = createVerifyEmailIdentityCommand(EMAIL_ADDRESS); try { return await sesClient.send(verifyEmailIdentityCommand); } catch (err) { console.log("Failed to verify email identity.", err); return err; } };

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 Amazon Region.

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "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 Amazon 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 { VerifyDomainIdentityCommand } from "@aws-sdk/client-ses"; import { getUniqueName, postfix, } from "@aws-doc-sdk-examples/lib/utils/util-string.js"; import { sesClient } from "./libs/sesClient.js"; /** * You must have access to the domain's DNS settings to complete the * domain verification process. */ const DOMAIN_NAME = postfix(getUniqueName("Domain"), ".example.com"); const createVerifyDomainIdentityCommand = () => { return new VerifyDomainIdentityCommand({ Domain: DOMAIN_NAME }); }; const run = async () => { const VerifyDomainIdentityCommand = createVerifyDomainIdentityCommand(); try { return await sesClient.send(VerifyDomainIdentityCommand); } catch (err) { console.log("Failed to verify domain.", err); return err; } };

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 Amazon Region.

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "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 Amazon 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 { DeleteIdentityCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; const IDENTITY_EMAIL = "fake@example.com"; const createDeleteIdentityCommand = (identityName) => { return new DeleteIdentityCommand({ Identity: identityName, }); }; const run = async () => { const deleteIdentityCommand = createDeleteIdentityCommand(IDENTITY_EMAIL); try { return await sesClient.send(deleteIdentityCommand); } catch (err) { console.log("Failed to delete identity.", err); return err; } };

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

node ses_deleteidentity.js

This example code can be found here on GitHub.