

适用于 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 中的电子邮件接收使用 IP 地址筛选条件
<a name="ses-examples-ip-filters"></a>

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

**此 Node.js 代码示例演示：**
+ 创建 IP 地址筛选条件以接受或拒绝来自某个 IP 地址或 IP 地址范围的邮件。
+ 列出您当前的 IP 地址筛选条件。
+ 删除 IP 地址筛选条件。

在 Amazon SES 中，*筛选条件* 是一个数据结构，包括名称、IP 地址范围以及允许还是阻止来自该范围的邮件。对于您希望阻止或允许的 IP 地址，以无类域间路由 (CIDR) 表示法指定单个 IP 地址或 IP 地址范围。有关 Amazon SES 如何接收电子邮件的详细信息，请参阅《Amazon Simple Email Service 开发人员指南》中的 [Amazon SES 电子邮件接收概念](https://docs.amazonaws.cn/ses/latest/DeveloperGuide/receiving-email-concepts.html)。

## 情景
<a name="ses-examples-receiving-email-scenario"></a>

在本示例中，使用了一系列 Node.js 模块以多种方式发送电子邮件。这些 Node.js 模块使用 SDK for JavaScript，通过 `AWS.SES` 客户端类的以下方法来创建和使用电子邮件模板：
+ [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptFilter-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptFilter-property)
+ [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#listReceiptFilters-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#listReceiptFilters-property)
+ [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptFilter-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptFilter-property)

## 先决条件任务
<a name="ses-examples-ip-filters-prerequisites"></a>

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

## 配置 SDK
<a name="ses-examples-ip-filters-configure-sdk"></a>

通过创建全局配置对象然后为代码设置区域，来配置 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'});
```

## 创建 IP 地址筛选条件
<a name="ses-examples-ip-filters-creating"></a>

在本示例中，使用 Node.js 模块通过 Amazon SES 发送电子邮件。创建文件名为 `ses_createreceiptfilter.js` 的 Node.js 模块。按前面所示配置 SDK。

创建一个传递参数值的对象，这些参数值定义 IP 筛选条件，包括筛选条件名称，要筛选的 IP 地址或地址范围，以及允许还是阻止来自所筛选地址的电子邮件流量。要调用 `createReceiptFilter` 方法，请创建一个 promise 来调用 Amazon SES 服务对象并传递参数。然后处理 promise 回调中的 `response`。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create createReceiptFilter params
var params = {
  Filter: {
    IpFilter: {
      Cidr: "IP_ADDRESS_OR_RANGE",
      Policy: "Allow" | "Block",
    },
    Name: "NAME",
  },
};

// Create the promise and SES service object
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .createReceiptFilter(params)
  .promise();

// Handle promise's fulfilled/rejected states
sendPromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

要运行示例，请在命令行中键入以下内容。将在 Amazon SES 中创建筛选条件。

```
node ses_createreceiptfilter.js
```

此示例代码可在 [GitHub 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_createreceiptfilter.js)找到。

## 列出 IP 地址筛选条件
<a name="ses-examples-ip-filters-listing"></a>

在本示例中，使用 Node.js 模块通过 Amazon SES 发送电子邮件。创建文件名为 `ses_listreceiptfilters.js` 的 Node.js 模块。按前面所示配置 SDK。

创建一个空参数对象。要调用 `listReceiptFilters` 方法，请创建一个 promise 来调用 Amazon SES 服务对象并传递参数。然后处理 promise 回调中的 `response`。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .listReceiptFilters({})
  .promise();

// Handle promise's fulfilled/rejected states
sendPromise
  .then(function (data) {
    console.log(data.Filters);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

要运行示例，请在命令行中键入以下内容。Amazon SES 会返回筛选条件列表。

```
node ses_listreceiptfilters.js
```

此示例代码可在 [GitHub 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_listreceiptfilters.js)找到。

## 删除 IP 地址筛选器
<a name="ses-examples-ip-filters-deleting"></a>

在本示例中，使用 Node.js 模块通过 Amazon SES 发送电子邮件。创建文件名为 `ses_deletereceiptfilter.js` 的 Node.js 模块。按前面所示配置 SDK。

创建对象，传递要删除的 IP 筛选条件的名称。要调用 `deleteReceiptFilter` 方法，请创建一个 promise 来调用 Amazon SES 服务对象并传递参数。然后处理 promise 回调中的 `response`。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .deleteReceiptFilter({ FilterName: "NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
sendPromise
  .then(function (data) {
    console.log("IP Filter deleted");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

要运行示例，请在命令行中键入以下内容。将从 Amazon SES 中删除筛选条件。

```
node ses_deletereceiptfilter.js
```

此示例代码可在 [GitHub 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_deletereceiptfilter.js)找到。