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
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 shared credentials file, see Shared config and credentials files in the AWS SDKs and Tools Reference Guide.
Important
These examples demonstrate how to import/export client service objects and command using ECMAScript6 (ES6).
This requires Node.js version 13.x or higher. To download and install the latest version of Node.js, see Node.js downloads.
. If you prefer to use CommonJS syntax, see JavaScript ES6/CommonJS syntax.
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 = "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 IdentityType
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 AWS 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 EMAIL_ADDRESS
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 AWS 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 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 DOMAIN_NAME
with the domain name.
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 AWS 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 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_EMAIL
with the email 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