

适用于 JavaScript 的 Amazon SDK v2 已终止支持。建议您迁移到 [适用于 JavaScript 的 Amazon SDK v3](https://docs.amazonaws.cn//sdk-for-javascript/v3/developer-guide/)。有关更多详情和如何迁移的信息，请参阅本[公告](https://www.amazonaws.cn/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)。

# 管理 Amazon SES 身份
管理身份

![\[JavaScript code example that applies to Node.js execution\]](http://docs.amazonaws.cn/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**此 Node.js 代码示例演示：**
+ 如何验证用于 Amazon SES 的电子邮件地址和域。
+ 如何将 IAM policy 分配到您的 Amazon SES 身份。
+ 如何列出您 Amazon 账户中的所有 Amazon SES 身份。
+ 如何删除用于 Amazon SES 的身份。

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

有关如何在 Amazon SES 中验证电子邮件地址和域的详细信息，请参阅《Amazon Simple Email Service 开发人员指南》中的[在 Amazon SES 中验证电子邮件地址和域](https://docs.amazonaws.cn/ses/latest/DeveloperGuide/verify-addresses-and-domains.html)。有关 Amazon SES 中发送授权的信息，请参阅 [Amazon SES 发送授权概览](Amazon Simple Email Service Developer Guidesending-authorization-overview.html)。

## 情景


在本示例中，您使用一系列 Node.js 模块验证和管理 Amazon SES 身份。这些 Node.js 模块使用 SDK for JavaScript，通过 `AWS.SES` 客户端类的以下方法来验证电子邮件地址和域：
+ [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#listIdentities-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#listIdentities-property)
+ [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#deleteIdentity-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#deleteIdentity-property)
+ [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#verifyEmailIdentity-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#verifyEmailIdentity-property)
+ [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#verifyDomainIdentity-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#verifyDomainIdentity-property)

## 先决条件任务


要设置和运行此示例，您必须先完成以下任务：
+ 安装 Node.js。有关安装 Node.js 的更多信息，请参阅 [Node.js 网站](https://nodejs.org)。
+ 使用用户凭证创建共享配置文件。有关提供凭证 JSON 文件的更多信息，请参阅[从共享凭证文件加载 Node.js 中的凭证](loading-node-credentials-shared.md)。

## 配置 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 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_listidentities.js)找到。

## 验证电子邮件地址身份


本示例使用 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 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_verifyemailidentity.js)找到。

## 验证域身份


本示例使用 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 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_verifydomainidentity.js)找到。

## 删除身份


本示例使用 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 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_deleteidentity.js)找到。