

 [适用于 JavaScript 的 AWS SDK V3 API 参考指南](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/)详细描述了 适用于 JavaScript 的 AWS SDK 版本 3 (V3) 的所有 API 操作。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 管理 Amazon SES 身份
<a name="ses-examples-managing-identities"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/zh_cn/sdk-for-javascript/v3/developer-guide/images/nodeicon.png)

**此 Node.js 代码示例演示：**
+ 如何验证用于 Amazon SES 的电子邮件地址和域。
+ 如何为您的 Amazon SES 身份分配 AWS Identity and Access Management (IAM) 策略。
+ 如何列出您 AWS 账户的所有 Amazon SES 身份。
+ 如何删除用于 Amazon SES 的身份。

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

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

## 情景
<a name="ses-examples-verifying-identities-scenario"></a>

在本示例中，您使用一系列 Node.js 模块验证和管理 Amazon SES 身份。Node.js 模块使用的 SDK JavaScript 来验证电子邮件地址和域名，使用`SES`客户端类的以下方法：
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListIdentitiesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListIdentitiesCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteIdentityCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteIdentityCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyEmailIdentityCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyEmailIdentityCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyDomainIdentityCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyDomainIdentityCommand/)

## 完成先决条件任务
<a name="ses-examples-verifying-identities-prerequisites"></a>

要设置和运行此示例，您必须先完成以下任务：
+ 设置项目环境以运行这些 Node TypeScript 示例，并安装所需的模块 适用于 JavaScript 的 AWS SDK 和第三方模块。按照上的说明进行操作[ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/ses/README.md)。
+ 使用用户凭证创建共享配置文件。有关提供共享凭据文件的更多信息，请参阅[和*工具参考指南中的共享配置AWS SDKs 和*凭据文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)。

**重要**  
这些示例演示了如何使用 ECMAScript6 (ES6) 来 import/export 客户端服务对象和命令。  
这需要使用 Node.js 版本 13.x 或更高版本。要下载并安装最新版本的 Node.js，请参阅 [Node.js 下载](https://nodejs.org/en/download)。
如果您更喜欢使用 CommonJS 语法，请参阅 [JavaScript ES6/CommonJS 语法](sdk-example-javascript-syntax.md)。

## 列出身份
<a name="ses-examples-listing-identities"></a>

在本示例中，使用 Node.js 模块列出用于 Amazon SES 的电子邮件地址和域。

创建一个 `libs` 目录，然后使用文件名 `sesClient.js` 创建一个 Node.js 模块。将以下代码复制并粘贴到其中，这将创建 Amazon SES 客户端对象。*REGION*替换为您所在 AWS 的地区。

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

可以在此[处找到此](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js)示例代码 GitHub。

创建文件名为 `ses_listidentities.js` 的 Node.js 模块。如前所示配置 SDK，包括安装所需的客户端和软件包。

创建对象，为 `SES` 客户端类的 `ListIdentitiesCommand` 方法传递 `IdentityType` 及其他参数。要调用 `ListIdentitiesCommand` 方法，请调用一个 Amazon SES 服务对象来传递参数对象。

 返回的 `data` 包含 `IdentityType` 参数所指定的域身份数组。

**注意**  
*IdentityType*替换为身份类型，可以是 “EmailAddress” 或 “域”。

```
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;
  }
};
```

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

```
node ses_listidentities.js 
```

可以在此[处找到此](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_listidentities.js)示例代码 GitHub。

## 验证电子邮件地址身份
<a name="ses-examples-verifying-email"></a>

在本示例中，使用 Node.js 模块验证用于 Amazon SES 的电子邮件发送方。

创建一个 `libs` 目录，然后使用文件名 `sesClient.js` 创建一个 Node.js 模块。将以下代码复制并粘贴到其中，这将创建 Amazon SES 客户端对象。*REGION*替换为您所在 AWS 的地区。

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

可以在此[处找到此](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js)示例代码 GitHub。

创建文件名为 `ses_verifyemailidentity.js` 的 Node.js 模块。如前所示配置 SDK，包括下载所需的客户端和软件包。

创建对象，为 `SES` 客户端类的 `VerifyEmailIdentityCommand` 方法传递 `EmailAddress` 参数。要调用 `VerifyEmailIdentityCommand` 方法，请调用一个 Amazon SES 客户端服务对象来传递参数。

**注意**  
*EMAIL\$1ADDRESS*替换为电子邮件地址，例如 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;
  }
};
```

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

```
node ses_verifyemailidentity.js 
```

可以在此[处找到此](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_verifyemailidentity.js)示例代码 GitHub。

## 验证域身份
<a name="ses-examples-verifying-domains"></a>

在本示例中，使用 Node.js 模块验证用于 Amazon SES 的电子邮件域。

创建一个 `libs` 目录，然后使用文件名 `sesClient.js` 创建一个 Node.js 模块。将以下代码复制并粘贴到其中，这将创建 Amazon SES 客户端对象。*REGION*替换为您所在 AWS 的地区。

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

可以在此[处找到此](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js)示例代码 GitHub。

创建文件名为 `ses_verifydomainidentity.js` 的 Node.js 模块。如前所示配置 SDK，包括安装所需的客户端和软件包。

创建对象，为 `SES` 客户端类的 `VerifyDomainIdentityCommand` 方法传递 `Domain` 参数。要调用 `VerifyDomainIdentityCommand` 方法，请调用一个 Amazon SES 客户端服务对象来传递参数对象。

**注意**  
此示例导入并使用所需的 S AWS ervice V3 包客户端、V3 命令，并以某种 async/await 模式使用该`send`方法。您可以改用 V2 命令创建此示例，方法是进行一些细微的更改。有关更多信息，请参阅 [使用 v3 命令](migrating.md#using_v3_commands)。

**注意**  
*DOMAIN\$1NAME*替换为域名。

```
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;
  }
};
```

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

```
node ses_verifydomainidentity.js  
```

可以在此[处找到此](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_verifydomainidentity.js)示例代码 GitHub。

## 删除身份
<a name="ses-examples-deleting-identities"></a>

在本示例中，使用 Node.js 模块删除用于 Amazon SES 的电子邮件地址或域。

创建一个 `libs` 目录，然后使用文件名 `sesClient.js` 创建一个 Node.js 模块。将以下代码复制并粘贴到其中，这将创建 Amazon SES 客户端对象。*REGION*替换为您所在 AWS 的地区。

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

可以在此[处找到此](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js)示例代码 GitHub。

创建文件名为 `ses_deleteidentity.js` 的 Node.js 模块。如前所示配置 SDK，包括安装所需的客户端和软件包。

创建对象，为 `SES` 客户端类的 `DeleteIdentityCommand` 方法传递 `Identity` 参数。要调用 `DeleteIdentityCommand` 方法，请创建一个 `request` 来调用 Amazon SES 客户端服务对象并传递参数。

**注意**  
此示例导入并使用所需的 S AWS ervice V3 包客户端、V3 命令，并以某种 async/await 模式使用该`send`方法。您可以改用 V2 命令创建此示例，方法是进行一些细微的更改。有关更多信息，请参阅 [使用 v3 命令](migrating.md#using_v3_commands)。

**注意**  
*IDENTITY\$1EMAIL*替换为要删除的身份的电子邮件。

```
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;
  }
};
```

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

```
node ses_deleteidentity.js 
```

可以在此[处找到此](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_deleteidentity.js)示例代码 GitHub。