管理 Amazon SES 身份 - AWS SDK for JavaScript

我们已宣布即将终止对 AWS SDK for JavaScript v2 的支持。建议您迁移到 AWS SDK for JavaScript v3。有关日期、其他详细信息以及如何迁移的信息,请参阅链接的公告。

管理 Amazon SES 身份

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何验证用于 Amazon SES 的电子邮件地址和域。

  • 如何将 IAM policy 分配到您的 Amazon SES 身份。

  • 如何列出您 AWS 账户中的所有 Amazon SES 身份。

  • 如何删除用于 Amazon SES 的身份。

Amazon SES 身份 是 Amazon SES 用来发送电子邮件的电子邮件地址或域。Amazon SES 要求您验证电子邮件身份,以确认您拥有该身份,并防止他人使用。

有关如何在 Amazon SES 中验证电子邮件地址和域的详细信息,请参阅《Amazon Simple Email Service 开发人员指南》中的在 Amazon SES 中验证电子邮件地址和域。有关 Amazon SES 中发送授权的信息,请参阅 Amazon SES 发送授权概览

情景

在本示例中,您使用一系列 Node.js 模块验证和管理 Amazon SES 身份。这些 Node.js 模块使用 SDK for JavaScript,通过 AWS.SES 客户端类的以下方法来验证电子邮件地址和域:

先决条件任务

要设置和运行此示例,您必须先完成以下任务:

配置 SDK

通过创建全局配置对象然后为代码设置区域,来配置 SDK for JavaScript。在此示例中,区域设置为 us-west-2

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

列出身份

在本示例中,使用 Node.js 模块列出用于 Amazon SES 的电子邮件地址和域。创建文件名为 ses_listidentities.js 的 Node.js 模块。按前面所示配置 SDK。

创建对象,为 AWS.SES 客户端类的 listIdentities 方法传递 IdentityType 及其他参数。要调用 listIdentities 方法,请创建一个 promise 来调用 Amazon SES 服务对象并传递参数对象。

然后处理 promise 回调中的 response。由 promise 返回的 data 包含 IdentityType 参数所指定的域身份数组。

// 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); });

要运行示例,请在命令行中键入以下内容。

node ses_listidentities.js

此示例代码可在 GitHub 上的此处找到。

验证电子邮件地址身份

本示例使用 Node.js 模块验证用于 Amazon SES 的电子邮件发送方。创建文件名为 ses_verifyemailidentity.js 的 Node.js 模块。按前面所示配置 SDK。要访问 Amazon SES,请创建 AWS.SES 服务对象。

创建对象,为 AWS.SES 客户端类的 verifyEmailIdentity 方法传递 EmailAddress 参数。要调用 verifyEmailIdentity 方法,请创建一个 promise 来调用 Amazon SES 服务对象并传递参数。然后处理 promise 回调中的 response

// 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); });

要运行示例,请在命令行中键入以下内容。域会添加到 Amazon SES 等待验证。

node ses_verifyemailidentity.js

此示例代码可在 GitHub 上的此处找到。

验证域身份

本示例使用 Node.js 模块验证用于 Amazon SES 的电子邮件域。创建文件名为 ses_verifydomainidentity.js 的 Node.js 模块。按前面所示配置 SDK。

创建对象,为 AWS.SES 客户端类的 verifyDomainIdentity 方法传递 Domain 参数。要调用 verifyDomainIdentity 方法,请创建一个 promise 来调用 Amazon SES 服务对象并传递参数对象。然后处理 promise 回调中的 response

// 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); });

要运行示例,请在命令行中键入以下内容。域会添加到 Amazon SES 等待验证。

node ses_verifydomainidentity.js

此示例代码可在 GitHub 上的此处找到。

删除身份

本示例使用 Node.js 模块删除用于 Amazon SES 的电子邮件地址或域。创建文件名为 ses_deleteidentity.js 的 Node.js 模块。按前面所示配置 SDK。

创建对象,为 AWS.SES 客户端类的 deleteIdentity 方法传递 Identity 参数。要调用 deleteIdentity 方法,请创建一个 request 来调用 Amazon SES 服务对象并传递参数。然后处理 promise 回调中的 response

// 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); });

要运行示例,请在命令行中键入以下内容。

node ses_deleteidentity.js

此示例代码可在 GitHub 上的此处找到。