

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

# 地址列表
<a name="eb-addlist"></a>

地址列表是 Mail Manager 的一项功能，允许您创建和管理电子邮件地址和域的列表，您可以在流量策略和规则集中使用这些列表来处理传入邮件，依据是消息的收件人或发件人是否属于特定列表。地址列表有助于对电子邮件流进行更精细的控制，并帮助简化复杂电子邮件路由场景的管理。

## 什么是地址列表？
<a name="what-are-address-lists"></a>

地址列表是电子邮件地址和域的容器，您可以用它们来过滤和处理电子邮件消息。它们提供了一种便捷的方式来分组相关地址并集体应用路由规则和流量策略。

地址列表的主要使用案例包括：
+ 拒绝列表，用于阻止已知的垃圾邮件发件人或域
+ 允许列表，用于确保来自受信任发件人的传送
+ 收件人验证，以尽早拒绝发送给不存在收件人的电子邮件
+ 基于角色的路由，用于根据收件人角色应用不同的规则
+ 基于组的策略，用于对特定用户组强制执行策略

## 地址列表的工作原理
<a name="how-address-lists-work"></a>

SES 中的地址列表通过允许您创建和维护电子邮件地址和域的集合来简化电子邮件管理。一旦创建，这些列表通过流量策略和规则集成到您的电子邮件工作流中。

当 SES 处理电子邮件时，它会检查相关的地址列表以确定发件人或收件人是否为成员。基于此成员资格以及您配置的策略和规则，SES 随后采取适当的操作，例如路由、过滤或拒绝电子邮件。此过程实现了对电子邮件流量的高效和精细控制。

## 设置地址列表
<a name="setting-up-address-lists"></a>

**Topics**
+ [创建和填充地址列表](#creating-address-lists)
+ [管理地址列表](#managing-address-lists)

### 创建和填充地址列表
<a name="creating-address-lists"></a>

在控制台中创建地址列表的一部分是向其填充一个或多个地址。使用邮件管理器 APIs，您可以创建空地址列表并在以后填充它们。本节将向您展示如何通过控制台过程和 AWS CLI 示例来执行这两种操作。

**要创建和填充地址列表，请执行以下操作：**

1. 打开 SES 控制台，网址为[https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)。

1. 在 Mail Manager 下的导航窗格中，选择**地址列表**。

1. 选择**创建地址列表**，然后在**地址列表名称**字段中输入名称。

1. 选择**手动输入**或**批量上传**，然后按照相应的步骤操作：

1. **对于手动输入**：在控制台中输入一个或多个电子邮件地址或域。

   如果您使用星号 (`*`) 通配符，以下格式适用：

   1. 地址中只允许一个 `*`。
      + 当输入的是电子邮件地址时，`*` 应位于 @ 之前或之后。
      + 当`*`位于局部部分时，局部部分可以是 0 到 19 个字符，不包括`*`.
      + 当 `*` 位于域中时，子域级别可以是 2 到 9 个字符（不包括 `*`）。

   1. 有效通配符格式示例：
      + *\$1.domain1.com 至 \$1.domain8.domain7...domain1.com*
      + *\$1 @domain .com 到 1234567890123456789\$1 @domain .com*
      + *local@\$1.domain1.com 至 local@\$1.domain8.domain7...domain1.com*

1. **对于批量上传**：选择**选择文件**并从您的计算机中选择包含要上传地址的 CSV 或 JSON 文件。

   对每种文件类型使用示例中显示的格式：

   1. CSV 文件示例（注意，标头 `address` 是必填的。）：

      ```
      address
      user1@domain.com
      user2@*.domain.com
      *@domain.com
      ```

   1. JSON 文件示例：

      ```
      {
        "items": [
          {
            "address": "user1@domain.com"
          },
          {
            "address": "user2@*.domain.com"
          },
          {
            "address": "*@domain.com"
          }
        ]
      }
      ```

1. 完成添加地址或选择批量文件后，选择**创建地址列表**。

使用 AWS CLI：

**创建地址列表**

```
aws mailmanager create-address-list --address-list-name "MyDenyList"
```

**填充地址列表：**
+ **单次上传**

  ```
  aws mailmanager register-member-to-address-list \
                  --address-list-id al-123456789abc \
                  --address "user@example.com"
  ```
+ **批量上传**

  要进行批量上传，您首先必须创建一个导入任务，指定 CSV 或 JSON 格式：

  ```
  aws mailmanager create-address-list-import-job \
                  --address-list-id "al-123456789abc" \
                  --name "MyImportJob" \
                  --import-data-format ImportDataType=CSV
  ```

  这将返回一个任务 ID 和一个预签名的 URL。使用此预签名 URL 将您的 CSV 或 JSON 文件上传到 S3 存储桶，如下例所示，使用 curl 命令：

  ```
  curl -X PUT -T "/path/to/file" "pre-signed URL" 
  ```

  上传后，使用上一个命令返回的任务 ID 启动导入任务：

  ```
  aws mailmanager start-address-list-import-job --job-id "job-123456789"
  ```

### 管理地址列表
<a name="managing-address-lists"></a>

您可以根据需要更新、查看和删除地址列表。

**Topics**
+ [更新地址列表](#updating-address-lists)
+ [查看地址列表详细信息](#viewing-address-lists)
+ [删除地址列表](#deleting-address-lists)

#### 更新地址列表
<a name="updating-address-lists"></a>

您可以通过添加或删除地址来更新地址列表，并且可以选择添加或删除标签。

**要更新地址列表，请执行以下操作：**

1. 在**地址列表**页面上，选择要编辑的地址列表的名称。

1. 要添加地址，请选择**添加电子邮件地址**，然后按照 [创建和填充地址列表](#creating-address-lists) 中说明的手动输入或批量上传方法进行操作。

1. 要删除地址，请选中要删除的每个地址旁边的复选框，然后选择**删除电子邮件地址**并确认删除。

1. （可选）通过选择**管理标签**向地址列表添加或删除**标签**。

使用 AWS CLI：

**Add**

```
aws mailmanager register-member-to-address-list \
                --address-list-id al-123456789abc \
                --address "user@example.com"
```

**删除**

```
aws mailmanager deregister-member-from-address-list \
                --address-list-id al-123456789abc \
                --address "user@example.com"
```

#### 查看地址列表详细信息
<a name="viewing-address-lists"></a>

要查看地址列表详细信息，请执行以下操作：
+ 在**地址列表**页面上，选择一个地址列表的名称以查看其详细信息。

使用 AWS CLI：

```
aws mailmanager list-members-of-address-list --address-list-id al-123456789abc
```

#### 删除地址列表
<a name="deleting-address-lists"></a>

要删除地址列表：

1. 在**地址列表**页面上，选中要删除的地址列表旁边的单选按钮，然后选择**删除**。

1. 通过键入*确认*然后选择**删除**来确认删除列表。

使用 AWS CLI：

```
aws mailmanager delete-address-list --address-list-id al-123456789abc
```

## 在流量策略和规则集中使用地址列表
<a name="using-address-lists-in-traffic-policies-and-rule-sets"></a>

地址列表可用于流量策略语句和规则条件中，根据列表成员资格处理电子邮件，从而控制电子邮件流。以下各节提供了地址列表分别在流量策略和规则集中使用的示例。

**Topics**
+ [流量策略示例](#traffic-policy-example)
+ [规则集示例](#rule-set-example)

### 在流量策略语句中使用地址列表
<a name="traffic-policy-example"></a>

在构建流量策略语句的条件时，可以选择地址列表，以允许或拒绝进入入口端点的电子邮件。

以下控制台过程及其 AWS CLI 等效程序显示了一个创建策略声明的示例，如果收件人位于指定地址列表中，则允许消息进入您的入口端点。

**要在流量策略语句中使用地址列表，请执行以下操作：**

1. 按照 [创建流量策略和策略声明（控制台）](eb-filters.md#eb-filters-create-console) 中的说明创建新的流量策略或编辑现有策略

1. 在**策略语句**容器中，当满足语句条件时，选择**允许**作为要采取的操作。

1. 按如下方式构建语句条件：
   + 在**协议**字段中选择**收件人地址**。
   + 在**操作符**字段中选择**在地址列表中**。
   + 在**值**字段中选择地址列表的名称。

1. 虽然这只是一个示例，但您可以添加更多基于各种操作符的策略条件，这些条件可以与您的任何地址列表一起使用。

使用 AWS CLI：

```
aws mailmanager create-traffic-policy \
  --default-action ALLOW \
  --traffic-policy-name "testpolicy" \
  --policy-statements '[{
    "Action": "ALLOW",
    "Conditions": [{
      "BooleanExpression": {
        "Evaluate": {
          "IsInAddressList": {
            "Attribute": "RECIPIENT",
            "AddressLists": [
              "arn:aws:ses:eu-west-3:123456789012:mailmanager-address-list/al-123456789abc"
            ]
          }
        },
        "Operator": "IS_TRUE"
      }
  }]
}]'
```

### 在规则中使用地址列表
<a name="rule-set-example"></a>

在构建规则集中某个规则的条件时，可以选择地址列表以触发规则的操作。

以下控制台过程及其 AWS CLI 等效程序显示了创建规则的示例，该规则将在收件人位于指定地址列表中时调用丢弃操作。

**要在规则条件中使用地址列表，请执行以下操作：**

1. 按照 [创建规则集和规则（控制台）](eb-rules.md#eb-rules-create-console) 中的说明创建新规则或编辑现有规则。

1. 在**规则条件**容器中，按如下方式构建规则条件。
   + 在**选择属性**字段中选择**收件人地址**。
   + 在**选择操作符**字段中选择**在地址列表中**。
   + 在**值**字段中选择地址列表的名称。

1. 在**操作**容器中，选择**添加新操作**并选择**丢弃操作**。

1. 虽然这只是一个示例，但您可以添加更多基于各种操作符的规则条件，这些条件可以与您的任何地址列表一起使用，以执行各种操作。

使用 AWS CLI：

```
aws mailmanager create-rule-set \
  --rule-set-name "testruleset2" \
  --rules '[{
    "Name": "addresslist",
    "Conditions": [{
      "BooleanExpression": {
        "Evaluate": {
          "IsInAddressList": {
            "Attribute": "RECIPIENT",
            "AddressLists": [
              "arn:aws:ses:us-east-1:123456789012:mailmanager-address-list/al-123456789abc"
            ]
          }
        },
        "Operator": "IS_TRUE"
      }
    }],
    "Actions": [{
      "Drop": {}
    }]
  }]'
```

## 最佳实践和注意事项
<a name="best-practices-and-considerations"></a>
+ 注意列表大小，非常大的列表可能会影响性能。
+ 地址列表是特定于账户的，只能在同一个 AWS 账户内使用。
+ 目前不支持嵌套地址列表。
+ 每个区域最多支持 100 个地址列表。
+ 每个地址列表最多支持 100000 个地址。