

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

# 使用组织
<a name="organizations_overview"></a>

在 Amazon 中 WorkMail，您的组织代表贵公司的用户。在 Amazon WorkMail 控制台中，您可以看到您的可用组织列表。如果您没有可用的组织，则必须创建一个组织才能使用 Amazon WorkMail。

**Topics**
+ [创建企业](add_new_organization.md)
+ [删除组织](delete_organization.md)
+ [查找电子邮件地址](find-emails.md)
+ [使用组织设置](org-settings.md)
+ [标记组织](org-tag.md)
+ [使用访问控制规则](access-rules.md)
+ [设置邮箱保留策略](mailbox-retention-policy.md)

# 创建企业
<a name="add_new_organization"></a>

要使用 Amazon WorkMail，您必须先创建一个组织。一个 AWS 账户可以拥有多个 Amazon WorkMail 组织。创建组织时，您还可以为组织选择域并设置用户目录和加密设置。

您可以创建新的亚马逊 WorkMail 目录供您的 WorkMail 组织使用，也可以将亚马逊 WorkMail 与现有目录集成。您可以将 Amazon WorkMail 与以下类型的现有目录一起使用：
+ 本地 Microsoft Active Directory
+ AWS 托管 Active Directory（[由 AWS Directory Service 管理的微软 AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)）
+ Simple AD

通过与本地目录集成，您可以在 Amazon 中使用现有用户 WorkMail 和群组，用户可以使用其现有凭证登录。如果您使用的是本地目录，则必须先在 AWS Directory Service中设置 AD Connector。AD Connector 可将您的用户和群组与亚马逊 WorkMail 通讯簿同步，并执行用户身份验证请求。有关更多信息，请参阅《Directory Service 管理员指南》中的 [Active Directory Connector](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_ad_connector.html)。**

您还可以选择亚马逊 AWS KMS key WorkMail 用来加密邮箱内容的。您可以为 Amazon 选择默认的 AWS 托管主密钥 WorkMail，也可以在 AWS Key Management Service (AWS KMS) 中使用现有 KMS 密钥。有关创建新的 KMS 密钥的信息，请参阅《AWS Key Management Service 开发指南》中的[创建密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。**如果您以 AWS Identity and Access Management (IAM) 用户身份登录，请将自己设为 KMS 密钥的密钥管理员。有关更多信息，请参阅《AWS Key Management Service 开发人员指南》**中的[启用和禁用密钥](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)。

**注意事项**  
创建 Amazon WorkMail 组织时，请记住以下几点：
+ 亚马逊目前 WorkMail 不支持你与多个账户共享的托管 Microsoft Active Directory 服务。
+ 如果您有带有 Microsoft Exchange 和 AD Connector 的本地 Active Directory，我们建议您为组织配置互操作性设置。这样，当您将邮箱迁移到Amazon或将部分公司邮箱使用Amazon WorkMail 时，可以最大限度地减少 WorkMail 对用户的干扰。有关更多信息，请参阅 [亚马逊 WorkMail 和微软 Exchange 之间的互操作性](interoperability.md)。
+ 如果您选择**免费测试域**选项，则可以使用提供的测试域开始使用您的 Amazon WorkMail 组织。测试域使用以下格式：*example*.awsapps.com。只要您在亚马逊 WorkMail 组织中保持启用用户 WorkMail ，就可以将测试邮件域用于亚马逊和其他支持的 AWS 服务。但是，不能将测试域用于其他目的。如果您的 Amazon WorkMail 组织未保留至少一个已启用的用户，则测试域可能会可供其他客户注册和使用。
+ Amazon WorkMail 不支持多区域目录。
+ 亚马逊每四小时 WorkMail 将目录数据与 AWS 托管活动目录、Simple AD 和 AD Connector 同步一次。

## 使用 AWS 托管活动目录的重要更改
<a name="important-changes"></a>

亚马逊 WorkMail 正在更新其针对使用 AWS 托管活动目录（托管 AD）的组织的授权模式。此更改会影响 Amazon 与目录数据的 WorkMail 交互方式，并要求您采取具体措施来确保持续运行。

以前，当使用 AWS 托管活动目录创建亚马逊 WorkMail 组织时，亚马逊 WorkMail 使用服务级别权限与托管 AD 进行交互。为了让客户更灵活地将目录管理和邮箱管理角色分开， WorkMail控制台现在将使用 AWS Directory Service 数据 (DS-Data) APIs 在 AWS 托管活动目录中创建或更新用户和群组。 APIs 通过 WorkMail控制台执行这些操作的 IAM 委托人或者 APIs 还需要授权才能对与其 WorkMail 组织关联的托管 AD 使用等效的 DS-Data 操作，从而提供更精细的控制并更好地与 IAM 策略集成。

无论您是使用 Managed AD 创建新组织，还是现有组织使用 Managed AD，如果您希望继续通过 WorkMail 控制台创建、更新或删除用户和群组 APIs，或者，您都必须完成其他配置步骤，以确保更新后的授权模型能够正常运行。相关解释，请参阅[配置 AWS Managed Active Directory 集成](#configure-managed-ad-integration)。

**Topics**
+ [使用 AWS 托管活动目录的重要更改](#important-changes)
+ [创建企业](#create-organization)
+ [配置 AWS Managed Active Directory 集成](#configure-managed-ad-integration)
+ [查看组织的详细信息](#view-org-details)
+ [集成 WorkSpaces 目录](#compatible)
+ [组织状态和描述](#org-states)

## 创建企业
<a name="create-organization"></a>

在 Amazon WorkMail 控制台中创建新组织。

**创建 组织**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/rande.html)。**

1. 在导航栏中，选择**组织**。

   此时将出现**组织**页面并显示您的组织（如果有）。

1. 选择**创建组织**。

1. 在**电子邮件域**下，选择要用于组织中电子邮件地址的域：
   + ****现有 Route 53 域****：选择您使用 Amazon Route 53 (Route 53) 托管区管理的现有域。
   + ****新的 Route 53 域名**** — 注册一个新的 Route 53 域名以便在亚马逊上使用 WorkMail。
   + ****外部域****：输入您使用外部域名系统 (DNS) 提供商管理的现有域。
   + ****免费测试域名****-使用 Amazon 提供的免费测试域名 WorkMail。您可以使用测试域名浏览 Amazon WorkMail ，然后再向您的组织添加域名。

1. （可选）如果您的域是通过 Amazon Route 53 进行管理，则对于 **Route 53 托管区**，请选择您的 Route 53 域。

1. 在**别名**中，输入组织的唯一别名。

1. 选择**高级设置**，然后对于**用户目录**，选择以下选项之一：
   + **创建新的 Amazon WorkMail 目录** — 创建用于添加和管理用户的新目录。
   + **使用现有目录**：使用现有目录管理用户，例如本地 Microsoft Active Directory、 AWS Managed Active Directory 或 Simple AD。

1. 对于**加密**，选择以下选项之一：
   + **使用 Amazon WorkMail 托管密钥**-在您的账户中创建新的加密密钥。
   + **使用现有 KMS 密钥**：使用您已在 AWS KMS中创建的现有 KMS 密钥。

1. 选择**创建组织**。

如果您使用一个外部域，请通过向 DNS 服务添加相应的文本 (TXT) 和邮件交换器 (MX) 记录来验证该域。TXT 记录允许您输入有关 DNS 服务的注释。MX 记录指定了传入邮件服务器。

请务必将您的域设置为贵组织的默认域。有关更多信息，请参阅[验证域](domain_verification.md)和[选择默认域](default_domain.md)。

当组织处于**活动状态**时，您可以向其添加用户并设置其电子邮件客户端。有关更多信息，请参阅[添加用户](add_user.md)和[为 Amazon 设置电子邮件客户端 WorkMail](https://docs.aws.amazon.com/workmail/latest/userguide/clients.html)。

## 配置 AWS Managed Active Directory 集成
<a name="configure-managed-ad-integration"></a>

在您的亚马逊 WorkMail 组织中使用 AWS 托管活动目录时，额外的配置步骤可确保更新后的授权模型正常运行。

**为新组织配置托管式 AD 集成**

1. 在 Directory Service 控制台中，导航到您的托管 AD (Microsoft AD)，或者从亚马逊 WorkMail 控制台，在左侧导航面板中选择**用户**或**群组**，然后单击页面顶部备注框中的目录链接。

1. 针对**用户和组管理**选择**启用**。默认情况下禁用该设置，但必须启用此设置才能对用户和组执行写操作。

1. 通过附加包含以下操作的策略，确保 IAM 主体拥有所需的权限：

   ```
   ds:AccessDSData
   ds:ResetUserPassword
   ds-data:CreateGroup
   ds-data:DeleteGroup
   ds-data:AddGroupMember
   ds-data:RemoveGroupMember
   ds-data:CreateUser
   ds-data:DeleteUser
   ds-data:UpdateUser
   ```

**迁移现有的托管式 AD 组织**

1. 监控 Amazon WorkMail 控制台中的用户或群组页面以获取迁移通知。

1. 当出现通知时，开启**启用更新的目录操作**以迁移到新的目录服务 APIs。

1. 最后，请确保您已在 Directory Service 控制台中启用**用户和群组管理**，并使用上一节中所述的所需的 DS-Data 权限更新您的 IAM 策略。

将允许使用 AWS 目录服务数据 (DS-Data) APIs 创建、更新和删除用户的所有其余亚马逊 WorkMail 组织使用托管 AD（之前未启用此功能）。

## 查看组织的详细信息
<a name="view-org-details"></a>

您的每个 Amazon WorkMail 组织都可以显示组织详情页面。该页面向您显示有关其组织的信息 IDs ，包括您可以与一起使用的信息 AWS Command Line Interface。页面上的消息还可以显示完成设置和组织所需的任何步骤，例如未经验证的域或缺少用户。这些消息还提供了设置给定电子邮件客户端所遵循的第一步。

**查看组织详细信息**

1. 在导航栏中，选择**组织**。

   此时将出现**组织**页面并显示您的组织。

1. 选择要查看的组织。

## 集成 WorkSpaces 目录
<a name="compatible"></a>

要将 Amazon WorkMail 与配合使用 WorkSpaces，请使用以下步骤创建兼容目录。

**添加兼容 WorkSpaces 目录**

1. 使用创建兼容目录 WorkSpaces。有关 WorkSpaces 说明，请参阅《[亚马逊* WorkSpaces 管理指南》中的 “亚马逊 WorkSpaces *快速设置入门](https://docs.aws.amazon.com/workspaces/latest/adminguide/getting-started.html)”。

1. 在亚马逊 WorkMail 控制台中，创建您的亚马逊 WorkMail 组织并选择使用现有目录来创建该组织。有关更多信息，请参阅 [创建企业](#create-organization)。

## 组织状态和描述
<a name="org-states"></a>

在创建组织之后，它会具有以下状态之一。


****  

| **State** | 说明 | 
| --- | --- | 
|  **活跃**  |  您的组织很正常，可以使用。  | 
|  **Creating**  |  工作流程正在运行以创建您的组织。  | 
|  **已失败**  |  无法创建您的组织。  | 
|  **Impaired (受损)**  |  您的组织出现故障或检测到问题。  | 
|  **非活跃**  |  您的组织处于非活跃状态。  | 
|  **Requested (已请求)**  |  您的组织创建请求在队列中，正在等待创建。  | 
|  **正在验证**  |  正在检查组织的所有设置的运行状况。  | 

# 删除组织
<a name="delete_organization"></a>

如果您不想再使用亚马逊 WorkMail 发送贵组织的电子邮件，可以将您的组织从亚马逊中删除 WorkMail。

**注意**  
此操作无法撤消。删除组织后，您将无法恢复邮箱数据。

**删除组织**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/rande.html)。**

1. 在**组织**屏幕上的组织列表中，选择要删除的组织，然后选择**删除**。

1. 对于**删除组织**，选择是删除还是保留现有用户目录，然后输入组织的名称。

1. 选择**删除组织**。

**注意**  
如果您没有为 Amazon 提供自己的目录 WorkMail，我们将为您创建一个。如果您在删除组织时保留此现有目录，则除非该目录正被 Amazon WorkMail WorkDocs、或 WorkSpaces。有关定价信息，请参阅[其他目录类型定价](https://aws.amazon.com/directoryservice/other-directories-pricing/)。  
要删除该目录，它不能启用任何其他 AWS 应用程序。有关更多信息，请参阅《AWS Directory Service 管理指南》中的[删除 Simple AD 目录](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/simple_ad_delete.html)或[删除 AD Connector 目录](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_connector_delete.html)。**

当您尝试删除组织时，您可能会收到无效的 Amazon Simple Email Service (Amazon SES) 规则集集错误消息。如果您收到此错误，请在 Amazon SES 控制台中编辑 Amazon SES 规则并删除无效的规则集。您编辑的规则名称中应包含您的 Amazon WorkMail 组织 ID。有关更多信息，请参阅《Amazon Simple Email Service 开发人员指南》中的[创建接收规则](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-receipt-rules-console-walkthrough.html)。**

如果您需要确定哪个规则集置无效，请先保存规则。此时将为规则集显示错误消息。

# 查找电子邮件地址
<a name="find-emails"></a>

您可以按用户、资源或组查找您的组织中是否使用了某个电子邮件地址。

**查找电子邮件地址**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择组织的名称。

1. 在**组织**页面中，选择**查找电子邮件地址**。

1. 选择**搜索**。

# 使用组织设置
<a name="org-settings"></a>

以下各节说明如何使用亚马逊 WorkMail组织可用的设置。您选择的设置将应用于整个组织。

**Topics**
+ [启用邮箱迁移](migration-settings.md)
+ [启用日志](journaling.md)
+ [启用互操作性](enable-interop.md)
+ [启用 SMTP 网关](smtp-gateway.md)
+ [管理电子邮件流](email-flows.md)
+ [对传入电子邮件执行 DMARC 策略](inbound-dmarc.md)

# 启用邮箱迁移
<a name="migration-settings"></a>

当你想将邮箱从微软 Exchange 或 G Suite Basic 等来源传输到亚马逊 WorkMail时，你可以启用邮箱迁移。您可以将迁移作为更大规模迁移过程的一部分来启用。有关更多信息（包括操作步骤），请参阅本指南“入门”部分中的[迁移到亚马逊 WorkMail](migration_overview.md)。**

# 启用日志
<a name="journaling"></a>

您可以启用日志来记录电子邮件通信。使用日志时，通常使用集成式第三方存档和电子数据展示工具。日志有助于确保您满足数据存储、隐私保护和信息保护的合规性法规。

有关更多信息（包括操作步骤），请参阅本指南“入门”部分中的[在 Amazon WorkMail 中使用电子邮件日志](journaling_overview.md)。**

# 启用互操作性
<a name="enable-interop"></a>

互操作性允许您从 Microsoft Exchange 迁移并使用亚马逊 WorkMail 作为公司邮箱的子集。有关更多信息（包括操作步骤），请参阅本指南“入门”部分中的[在 Amazon 上配置可用性设置 WorkMail](enable_interop_wm.md)。**

# 启用 SMTP 网关
<a name="smtp-gateway"></a>

您可以启用简单邮件传输协议 (SMTP) 网关以与出站电子邮件流规则结合使用。出站电子邮件流规则允许您通过 SMTP 网关路由从您的 Amazon WorkMail 组织发送的电子邮件。有关更多信息，请参阅 [出站电子邮件规则操作](email-flows.md#email-flows-rule-outbound)。

**注意**  
为出站电子邮件流规则配置的 SMTP 网关必须使用主要证书颁发机构颁发的证书支持传输层安全性协议 (TLS) 1.2 版。只支持基本身份验证。

**配置 SMTP 网关**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择组织的名称。

1. 在导航面板中选择**组织设置**。

   此时将出现**组织设置**页面并显示一组选项卡。

1. 选择 **SMTP 网关**选项卡，然后选择**创建网关**。

1. 输入以下信息：
   + **网关名称**：输入唯一名称。
   + **网关地址**：输入网关的主机名或 IP 地址。
   + **端口号**：输入网关的端口号。
   + **用户名**：输入用户名。
   + **密码**：输入强密码。

1. 选择**创建**。

   SMTP 网关可与出站电子邮件流规则结合使用。

将 SMTP 网关配置为与出站邮件流规则一起使用时，出站邮件会尝试将该规则与 SMTP 网关相匹配。与该规则匹配的邮件将路由到相应的 SMTP 网关，然后由该网关处理电子邮件传送的其余部分。

如果 WorkMail Amazon 无法访问 SMTP 网关，系统会将电子邮件退回给发件人。如果发生这种情况，请按照前面的步骤更正网关设置。

# 管理电子邮件流
<a name="email-flows"></a>

要帮助管理电子邮件，您可以设置*电子邮件流规则*。电子邮件流规则可以根据电子邮件的地址或域对电子邮件执行一项或多项操作。您可以对发件人和收件人的电子邮件地址或域使用电子邮件流规则。

创建电子邮件流规则时，可以指定在指定的规则[*模式*](#email-flows-patterns)匹配时应用于电子邮件的[*规则操作*](#email-flows-rule-actions)。

**Topics**
+ [入站电子邮件规则操作](#email-flows-rule-actions)
+ [出站电子邮件规则操作](#email-flows-rule-outbound)
+ [发件人和收件人模式](#email-flows-patterns)
+ [创建电子邮件流规则](create-email-rules.md)
+ [编辑电子邮件流规则](edit-rules.md)
+ [为 Amazon AWS Lambda 进行配置 WorkMail](lambda.md)
+ [管理对 Amazon WorkMail 消息流 API 的访问权限](lambda-content-access.md)
+ [测试电子邮件流规则](test-email-flow-rule.md)
+ [删除电子邮件流规则](remove-email-flow-rule.md)

## 入站电子邮件规则操作
<a name="email-flows-rule-actions"></a>

入站电子邮件流规则有助于阻止不受欢迎的电子邮件到达用户的邮箱。入站电子邮件流规则（也称为规则操作）会自动应用于发送给您的 Amazon WorkMail 组织内部人员的所有电子邮件。这与单个邮箱的电子邮件规则不同。

**注意**  
或者，您可以使用带有 AWS Lambda 功能的规则，在传入的电子邮件发送到用户的邮箱之前对其进行处理。有关在亚马逊上使用 Lambda 的更多信息 WorkMail，请参阅。[为 Amazon AWS Lambda 进行配置 WorkMail](lambda.md)有关 Lambda 的更多信息，请参阅 [https://docs.aws.amazon.com/lambda/latest/dg/welcome.html](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)。

入站电子邮件流规则（也称为规则操作）自动应用于发送给 Amazon WorkMail 组织内部人员的所有电子邮件。这与单个邮箱的电子邮件规则不同。

以下规则操作定义如何处理入站电子邮件。对于每个规则，指定[发件人和收件人模式](#email-flows-patterns)以及以下操作之一。


****  

| Action | 说明 | 
| --- | --- | 
|  删除电子邮件  |  电子邮件将被忽略。它未送达，并且不会通知发件人未送达。  | 
|  发送退回邮件响应  |  电子邮件未送达，并且使用退回邮件来通知发件人未送达。  | 
| 传送到垃圾邮件文件夹 |  即使最初未被 Amazon 垃圾邮件检测系统识别为垃圾邮件，该电子邮件也会发送到用户的垃圾邮件或 WorkMail 垃圾文件夹。  | 
|  默认  |  电子邮件经过 Amazon WorkMail 垃圾邮件检测系统检查后才送达。垃圾邮件将被发送到垃圾邮件文件夹。所有其他电子邮件将被发送到收件箱。 将忽略其他具有不太明确的发件人模式的电子邮件流规则。要向基于域的电子邮件流规则添加例外，请使用更明确的发件人模式配置默认操作。有关更多信息，请参阅 [发件人和收件人模式](#email-flows-patterns)。  | 
|  从不传送到垃圾邮件文件夹  |  即使电子邮件被 Amazon 垃圾邮件检测系统识别为垃圾邮件，也始终会发送到用户的收 WorkMail 件箱。  如果不使用默认的垃圾邮件检测系统，则会使用户面临来自您指定的地址的高风险内容。   | 
|  跑 AWS Lambda  |  在电子邮件被发送到用户的收件箱之前或期间，可将电子邮件传递到 Lambda 函数以进行处理。  | 

**注意**  
入站电子邮件首先发送到 Amazon SES，然后再发送到亚马逊 WorkMail。如果 Amazon SES 阻止入站电子邮件，则规则操作不适用。例如，Amazon SES 会在检测到已知病毒或由于显式 IP 筛选规则而阻止电子邮件。指定规则操作（例如，**Default (默认)**、**Deliver to junk folder (发送到垃圾邮件文件夹)** 或 **Never deliver to junk folder (从不发送到垃圾邮件文件夹)**）不起作用。

## 出站电子邮件规则操作
<a name="email-flows-rule-outbound"></a>

您可以使用出站电子邮件流规则通过 SMTP 网关定向电子邮件，或者阻止发件人将电子邮件发送给指定的收件人。有关 SMTP 网关的更多信息，请参阅[启用 SMTP 网关](smtp-gateway.md)。

您还可以使用出站电子邮件流规则将电子邮件发送到 AWS Lambda 函数，以便在发送电子邮件后进行处理。有关 Lambda 的更多信息，请参阅 [https://docs.aws.amazon.com/lambda/latest/dg/welcome.html](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)。

以下规则操作定义如何处理出站电子邮件。对于每个规则，指定[发件人和收件人模式](#email-flows-patterns)以及以下操作之一。


****  

| Action | 说明 | 
| --- | --- | 
|  默认  |  通过正常流程发送电子邮件。  | 
|  删除电子邮件  |  电子邮件将被删除。它未发送，并且不会通知发件人未送达。  | 
| 发送退回邮件响应 |  电子邮件未发送，向发件人通知管理员阻止了电子邮件的消息。  | 
|  路由到 SMTP 网关  |  通过配置的 SMTP 网关发送电子邮件。  | 
|  运行 Lambda  |  在发送电子邮件之前或期间，可将电子邮件发送到 Lambda 函数进行处理。  | 

## 发件人和收件人模式
<a name="email-flows-patterns"></a>

电子邮件流规则可应用于特定电子邮件地址，或特定域或一组域之下的所有电子邮件地址。定义模式来确定规则所应用于的电子邮件地址。

发件人和收件人模式都采用以下形式之一：
+ *电子邮件地址*与单个电子邮件地址匹配；例如：

  ```
  mailbox@example.com
  ```
+ *域名*与该域之下的所有电子邮件地址匹配；例如：

  ```
  example.com
  ```
+ *通配符域*与该域及其所有子域之下的所有电子邮件地址匹配。通配符只出现在域的前面；例如：

  ```
  *.example.com
  ```
+ *星号*与任何域之下的任何电子邮件地址匹配。

  ```
  *
  ```

**注意**  
\$1 符号在发件人或收件人模式中无效。

可以为一个规则指定多种模式。有关更多信息，请参阅[入站电子邮件规则操作](#email-flows-rule-actions)和[出站电子邮件规则操作](#email-flows-rule-outbound)。

如果入站电子邮件中的 `Sender` 或 `From` 标头与任何模式匹配，则将应用入站电子邮件流规则。如果匹配，将首先匹配 `Sender` 地址。如果没有 `Sender` 标头或 `Sender` 标头不与任何规则匹配，则匹配 `From` 地址。如果有多个电子邮件收件人与不同的规则匹配，则每个规则应用于所匹配的收件人。

如果出站电子邮件中的收件人和 `Sender` 或 `From` 标头与任何模式匹配，则将应用出站电子邮件流规则。如果有多个电子邮件收件人与不同的规则匹配，则每个规则应用于所匹配的收件人。

如果多个规则匹配，则应用最明确的规则的操作。例如，针对特定电子邮件地址的规则的优先级高于针对整个域的规则。如果多个规则具有相同的明确性，则应用最受限制的操作。例如，**Drop** 操作优先于 **Bounce** 操作。操作的优先顺序与它们在[入站电子邮件规则操作](#email-flows-rule-actions)和[出站电子邮件规则操作](#email-flows-rule-outbound)中列出的顺序相同。

**注意**  
在创建具有重叠的发件人模式以及 **Drop** 或 **Bounce** 操作的规则时，应格外小心。意外的优先顺序可能会导致许多入站电子邮件未送达。

# 创建电子邮件流规则
<a name="create-email-rules"></a>

电子邮件流规则将[规则操作](email-flows.md#email-flows-rule-actions)应用于传入和传出电子邮件。当邮件与指定[模式](email-flows.md#email-flows-patterns)匹配时，这些操作将适用。新的电子邮件流规则将立即生效。

**创建电子邮件流规则**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择组织的名称。

1. 在导航面板中选择**组织设置**。

   此时将出现**组织设置**页面并显示一组选项卡。在此页面中，您可以创建入站或出站规则。以下步骤说明了如何创建这两种规则。

**创建入站规则**

   1. 选择**入站规则**选项卡，然后选择**创建**。

   1. 在**规则名称**框中，输入唯一的名称。

   1. 在**操作**下，打开列表并选择一项操作。列表中的每个项目都包含描述，有些还提供**了解更多**链接。
**注意**  
如果您选择**运行 Lambda** 操作，则会显示其他控件。有关使用这些控件的信息，请参阅下一部分：[为 Amazon AWS Lambda 进行配置 WorkMail](lambda.md)。

   1. 在**发件人域或地址**下，输入要应用规则的发件人域或地址。

   1. 在**目标域或地址**下，输入目标域和电子邮件地址的任意组合。

   1. 选择**创建**。

**创建出站规则**

   1. 选择**出站规则**选项卡，然后选择**创建**。

   1. 在**规则名称**框中，输入唯一的名称。

   1. 在**操作**下，打开列表并选择一项操作。列表中的每个项目都包含描述，有些还提供**了解更多**链接。
**注意**  
如果您选择**运行 Lambda** 操作，则会显示其他控件。有关使用这些控件的信息，请参阅下一部分“[为 Amazon AWS Lambda 进行配置 WorkMail](lambda.md)”。

   1. 在**发件人域或地址**下，输入有效发件人域和电子邮件地址的任意组合。

   1. 在**目标域或地址**下，输入有效目标域和电子邮件地址的任意组合。

   1. 选择**创建**。

   您可以测试您创建的新电子邮件流规则。有关更多信息，请参阅 [测试电子邮件流规则](test-email-flow-rule.md)。

# 编辑电子邮件流规则
<a name="edit-rules"></a>

每当您需要更改电子邮件的一项或多项[规则操作](email-flows.md#email-flows-rule-actions)时，都可以编辑电子邮件流规则。本部分中的步骤适用于传入和传出电子邮件。

**编辑电子邮件流规则**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择组织的名称。

1. 在导航面板中选择**组织设置**。

   此时将出现**组织设置**页面并显示一组选项卡。

1. 选择**入站规则**或**出站规则**选项卡。

1. 选择要更改的规则旁边的单选按钮，然后选择**编辑**。

1. 根据需要更改规则中的一项或多项操作，然后选择**保存**。

# 为 Amazon AWS Lambda 进行配置 WorkMail
<a name="lambda"></a>

在入站和出站电子邮件流规则中使用 “**运行 Lambda**” 操作，将符合规则的电子邮件传递给 AWS Lambda 函数进行处理。

从以下配置中选择 “在亚马逊上**运行 Lambda**” 操作。 WorkMail

**同步**运行 Lambda** 配置**  
在发送或传送与流规则匹配的电子邮件之前，会先将此电子邮件传递给 Lambda 函数进行处理。使用此配置修改电子邮件内容。您还可以针对不同的使用案例控制入站或出站电子邮件流。例如，传递到 Lambda 函数的规则可以阻止敏感电子邮件的传送、删除附件或添加免责声明。

**异步**运行 Lambda** 配置**  
在发送或传送与流规则匹配的电子邮件时，会将此电子邮件传递给 Lambda 函数进行处理。此配置不会影响电子邮件传递，并且用于收集入站或出站电子邮件的指标等任务。

无论您选择同步配置还是异步配置，传递到 Lambda 函数的事件对象都包含入站或出站电子邮件事件的元数据。您还可以使用元数据中的邮件 ID 来访问电子邮件的全部内容。有关更多信息，请参阅 [使用检索消息内容 AWS Lambda](lambda-content.md)。有关电子邮件事件的更多信息，请参阅 [Lambda 事件数据](#lambda-data)。

有关入站和出站电子邮件流规则的更多信息，请参阅[管理电子邮件流](email-flows.md)。有关 Lambda 的更多信息，请参阅 [https://docs.aws.amazon.com/lambda/latest/dg/welcome.html](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)。

**注意**  
目前，Lambda 电子邮件流规则仅引用同一 AWS 区域和正在配置的亚马逊 WorkMail 组织中的 Lambda 函数。 AWS 账户 

## Amazon AWS Lambda 版入门 WorkMail
<a name="start-lambda"></a>

要开始在亚马逊 AWS Lambda 上使用 WorkMail，我们建议将 [ WorkMail Hello World Lambda 函数](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:489970191081:applications/workmail-hello-world-python)从部署 AWS Serverless Application Repository 到您的账户。该函数具有所有必要的资源及为您配置的权限。有关更多示例，请参阅上的[amazon-workmail-lambda-templates](https://github.com/aws-samples/amazon-workmail-lambda-templates)存储库 GitHub。

如果您选择创建自己的 Lambda 函数，则必须使用 AWS Command Line Interface ()AWS CLI配置权限。在以下示例命令中，请执行以下操作：
+ 将 `MY_FUNCTION_NAME` 替换为您的 Lambda 函数的名称。
+ `REGION`替换为您的 WorkMail Amazon AWS 区域。可用的 Amazon WorkMail 区域包括`us-east-1`（美国东部（弗吉尼亚北部））、`us-west-2`（美国西部（俄勒冈））和`eu-west-1`（欧洲（爱尔兰））。
+ 将 `AWS_ACCOUNT_ID` 替换为您的 12 位 AWS 账户 ID。
+ `WORKMAIL_ORGANIZATION_ID`用您的亚马逊 WorkMail组织编号替换。您可以在**组织**页面上贵组织对应的卡上找到该 ID。



```
aws --region REGION lambda add-permission --function-name MY_FUNCTION_NAME 
--statement-id AllowWorkMail 
--action "lambda:InvokeFunction" 
--principal workmail.REGION.amazonaws.com
--source-arn arn:aws:workmail:REGION:AWS_ACCOUNT_ID:organization/WORKMAIL_ORGANIZATION_ID
```

有关使用的更多信息 AWS CLI，请参阅《[https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)。

## 配置同步**运行 Lambda** 规则
<a name="synchronous-rules"></a>

要配置同步**运行 Lambda** 规则，请使用**运行 Lambda** 操作创建电子邮件流规则，然后选中**同步运行**复选框。有关创建邮件流规则的更多信息，请参阅[创建电子邮件流规则](create-email-rules.md)。

要完成同步规则的创建操作，请添加 Lambda Amazon 资源名称 (ARN) 并配置以下选项。

****Fallback action (回退操作)****  
当 Lambda 函数运行失败时，亚马逊将 WorkMail 应用该操作。如果未设置 **allRecipients** 标志，则此操作也适用于 Lambda 响应中省略的任何收件人。**回退操作**不能是另一项 Lambda 操作。

****Rule timeout (规则超时)**（以分钟为单位）**  
如果亚马逊 WorkMail 无法调用 Lambda 函数，则重试该函数的时间段。在此时间段结束时将应用 **Fallback action (回退操作)**。

**注意**  
同步**运行 Lambda** 规则仅支持 **\$1** 目标条件。

## Lambda 事件数据
<a name="lambda-data"></a>

使用以下事件数据触发 Lambda 函数。数据的呈现方式会有所不同，具体取决于用于 Lambda 函数的编程语言。

```
{
    "summaryVersion": "2018-10-10",
    "envelope": {
        "mailFrom" : {
            "address" : "from@example.com"
        },
        "recipients" : [
           { "address" : "recipient1@example.com" },
           { "address" : "recipient2@example.com" }
        ]
    },
    "sender" : {
        "address" :  "sender@example.com"
    },
    "subject" : "Hello From Amazon WorkMail!",
    "messageId": "00000000-0000-0000-0000-000000000000",
    "invocationId": "00000000000000000000000000000000",
    "flowDirection": "INBOUND",
    "truncated": false
}
```

事件 JSON 包含以下数据。

**summaryVersion**  
`LambdaEventData` 的版本号。仅当您在 `LambdaEventData` 中进行向后不兼容的更改时，此数据才会更新。

**envelope**  
电子邮件的信封，其中包括以下字段：    
**mailFrom**  
**From (发件人)** 地址，它通常是发送电子邮件的用户的电子邮件地址。如果该用户以其他用户名义或代表其他用户发送电子邮件，则 **mailFrom** 字段返回代表其发送电子邮件的用户的电子邮件地址，而不是实际发件人的电子邮件地址。  
**recipients**  
收件人电子邮件地址的列表。Amazon WorkMail 不区分 “收件人**”、“****抄送**” 或 “密**件抄送**”。  
对于入站电子邮件流规则，此列表包括您在其中创建规则的 Amazon WorkMail 组织中所有域中的收件人。Lambda 函数会针对发件人的每个 SMTP 会话进行单独调用，并且收件人字段将列出该 SMTP 对话中的收件人。不包括具有外部域的收件人。

**sender**  
代表其他用户发送电子邮件的用户的电子邮件地址。仅在代表其他用户发送电子邮件时设置此字段。

**subject**  
电子邮件主题行。当它超过 256 个字符限制时将被截断。

**messageId**  
在使用 Amazon Message Flow SDK 时，用于访问电子邮件 WorkMail 消息的全部内容的唯一 ID。

**invocationId**  
唯一 Lambda 调用的 ID。当因同一个 Lambda 函数被多次调用时，此 ID 保持不变。**LambdaEventData**用于检测重试并避免重复。

**flowDirection**  
指示电子邮件流的方向，即 **INBOUND (入站)** 或 **OUTBOUND (出站)**。

**truncated**  
适用于负载大小，而不是主题行长度。当为 `true` 时，负载大小超过 128 KB 的上限，因此收件人列表会被截断，以便满足限制。

## 同步**运行 Lambda** 响应架构
<a name="synchronous-schema"></a>

当具有同步 **Run Lambda** 操作的电子邮件流规则与入站或出站电子邮件匹配时，Amazon 会 WorkMail 调用配置的 Lambda 函数并等待回复，然后再对电子邮件采取行动。Lambda 函数根据预定义的架构返回响应，该架构列出了操作、操作类型、适用参数以及操作适用的收件人。

以下示例显示了同步**运行 Lambda** 响应。响应因用于 Lambda 函数的编程语言而异。

```
{
    "actions": [                          
      {
        "action" : {                       
          "type": "string",                 
          "parameters": { various }       
        },
        "recipients": [list of strings],      
        "allRecipients": boolean            
      }
    ]
}
```

响应 JSON 包含以下数据。

**action**  
要为收件人执行的操作。

**类型**  
操作类型。对于异步**运行 Lambda** 操作，不会返回操作类型。  
入站规则操作类型包括 **BOUNCE**、**DROP**、**DEFAULT**、**BYPASS\$1SPAM\$1CHECK** 和 **MOVE\$1TO\$1JUNK**。有关更多信息，请参阅 [入站电子邮件规则操作](email-flows.md#email-flows-rule-actions)。  
出站规则操作类型包括 **BOUNCE**、**DROP** 和 **DEFAULT**。有关更多信息，请参阅 [出站电子邮件规则操作](email-flows.md#email-flows-rule-outbound)。

**parameters**  
其他操作参数。支持 **BOUNCE** 操作类型作为具有键 **bounceMessage** 和值 **string** 的 JSON 对象。此退回邮件用于创建退回电子邮件。

**recipients**  
应对其执行操作的电子邮件地址的列表。可以向响应添加新的收件人，即使这些新收件人未包含在原始收件人列表中也是如此。如果操作的 **allRecipients** 为 true，则不需要此字段。  
当为入站电子邮件调用 Lambda 操作时，您只能添加来自贵组织的新收件人。新收件人将作为 **BCC (密件抄送)** 添加到响应中。

**allRecipients**  
如果为 true，则将操作应用于不受 Lambda 响应中的其他特定操作约束的所有收件人。

### 同步**运行 Lambda** 操作限制
<a name="synchronous-limits"></a>

**当亚马逊为同步运行 Lambda 操作 WorkMail 调用 Lambda 函数时，以下限制适用：**
+ Lambda 函数必须在 15 秒内进行响应，否则将被视为失败的调用。
**注意**  
系统将按照您指定的**规则超时**间隔重试调用。
+ Lambda 函数响应的最大允许大小为 256 KB。
+ 响应最多可包含 10 个唯一操作。10 个以外的操作将受配置的 **Fallback action (回退操作)** 的约束。
+ 出站 Lambda 函数最多允许 500 个收件人。
+ **Rule timeout (规则超时)** 的最大值为 240 分钟。如果将最小值配置为 0，则在 Amazon WorkMail 应用回退操作之前无需重试。

### 同步**运行 Lambda** 操作失败
<a name="synchronous-failures"></a>

**如果亚马逊由于错误、响应无效或 Lambda 超时而 WorkMail 无法调用您的 Lambda 函数，则亚马逊会使用指数级退避 WorkMail 重试调用，从而降低处理速率，直到规则超时时间结束。**然后，**Fallback action (回退操作)** 将应用于电子邮件的所有收件人。有关更多信息，请参阅 [配置同步**运行 Lambda** 规则](#synchronous-rules)。

## 同步**运行 Lambda** 响应示例
<a name="synchronous-responses"></a>

以下示例演示了常见同步**运行 Lambda** 响应的结构。

**Example ：从电子邮件中删除指定的收件人**  
以下示例演示了用于从电子邮件中删除收件人的同步**运行 Lambda** 响应的结构。  

```
{
    "actions": [
      {
        "action": {
          "type": "DEFAULT"
        },
        "allRecipients": true
      },
      {
        "action": {
          "type": "DROP"
        },
        "recipients": [
          "drop-recipient@example.com"
        ]
      }
    ]
}
```

**Example ：退回自定义电子邮件**  
以下示例演示了用于退回自定义电子邮件的同步**运行 Lambda** 响应的结构。  

```
{
    "actions" : [
      {
        "action" : {
          "type": 'BOUNCE',
          "parameters": {
            "bounceMessage" : "Email in breach of company policy."
          }
        },
        "allRecipients": true
      }
    ]
}
```

**Example ：将收件人添加到电子邮件**  
以下示例演示了用于将收件人添加到电子邮件的同步**运行 Lambda** 响应的结构。这不会更新电子邮件的 **To (收件人)** 或 **CC (抄送)** 字段。  

```
{
    "actions": [
      {
        "action": { 
          "type": "DEFAULT" 
        },
        "recipients": [
          "new-recipient@example.com"
         ]
      },
      {
        "action": { 
          "type": "DEFAULT" 
        },
        "allRecipients": true
      }
    ]
}
```

[有关为运行 Lambda 操作创建 Lambda 函数时要使用的更多代码示例，请参阅亚马逊 **Lambda** 模板。 WorkMail ](https://github.com/aws-samples/amazon-workmail-lambda-templates)

## 有关在亚马逊上使用 Lambda 的更多信息 WorkMail
<a name="lambda-more"></a>

您还可以访问触发 Lambda 函数的电子邮件的完整内容。有关更多信息，请参阅 [使用检索消息内容 AWS Lambda](lambda-content.md)。

# 使用检索消息内容 AWS Lambda
<a name="lambda-content"></a>

配置用于管理 Amazon 电子邮件流的 AWS Lambda 函数后 WorkMail，您可以访问使用 Lambda 处理的电子邮件的全部内容。有关开始使用亚马逊版 Lambda 的更多信息 WorkMail，请参阅。[为 Amazon AWS Lambda 进行配置 WorkMail](lambda.md)

要访问电子邮件的全部内容，请使用 Amazon Mess WorkMail age Flow API 中的`GetRawMessageContent`操作。调用时传递给 Lambda 函数的电子邮件 ID 会向该 API 发送请求。然后，该 API 会使用电子邮件的完整 MIME 内容进行响应。有关更多信息，请参阅《[亚马逊 * WorkMail API 参考》中的 “亚马逊 WorkMail *消息流](https://docs.aws.amazon.com/workmail/latest/APIReference/API_Operations_Amazon_WorkMail_Message_Flow.html)”。

以下示例显示了使用 Python 运行时环境的 Lambda 函数如何检索完整的邮件内容。

**提示**  
如果您首先从 AWS Serverless Application Repository 向您的账户部署 Amazon WorkMail [Hello World Lambda 函数](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:489970191081:applications/workmail-hello-world-python)，则系统会在您的账户中创建一个具有所有必要资源和权限的 Lambda 函数。然后，您可以根据使用案例将业务逻辑添加到 lambda 函数。

```
import boto3
import email
import os

def email_handler(event, context):
    workmail = boto3.client('workmailmessageflow', region_name=os.environ["AWS_REGION"])
    msg_id = event['messageId']
    raw_msg = workmail.get_raw_message_content(messageId=msg_id)

    parsed_msg = email.message_from_bytes(raw_msg['messageContent'].read())
    print(parsed_msg)
```

有关分析传输中邮件内容的方法的更多详细示例，请参阅上的[amazon-workmail-lambda-templates](https://github.com/aws-samples/amazon-workmail-lambda-templates)存储库 GitHub。

**注意**  
您只能使用 Amazon WorkMail 消息流 API 来访问传输中的电子邮件。您只能在邮件发送或接收后 24 小时内访问。要以编程方式访问用户邮箱中的邮件，请使用亚马逊支持的其他协议之一 WorkMail，例如 IMAP 或 Exchange Web 服务 (EWS)。

# 使用 AWS Lambda 更新邮件内容
<a name="update-with-lambda"></a>

配置同步 AWS Lambda 函数来管理电子邮件流后，您可以使用 Amazon Mess WorkMail age Flow API 中的`PutRawMessageContent`操作来更新传输中的电子邮件的内容。有关开始使用适用于 Amazon 的 Lambda 函数的更多信息 WorkMail，请参阅。[配置同步**运行 Lambda** 规则](lambda.md#synchronous-rules)有关 API 的更多信息，请参阅 [ PutRawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_PutRawMessageContent.html)。

**注意**  
 PutRawMessageContent API 需要 boto3 1.17.8，或者你可以在 Lambda 函数中添加一个层。要下载正确的 boto3 版本，请参阅上的 [boto 页面。 GitHub](https://github.com/boto/boto)有关添加层的更多信息，请参阅[配置函数以使用层](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-using)。  
下面是一个示例层：`"LayerArn":"arn:aws:lambda:${AWS::Region}:489970191081:layer:WorkMailLambdaLayer:2"`。在此示例中，将 `${AWS::Region}` 替换为适当的 AWS 区域，如 us-east-1。

**提示**  
如果您首先将 AWS Serverless 应用程序存储库中的 Amazon WorkMail [Hello World Lambda 函数](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:489970191081:applications/workmail-hello-world-python)部署到您的账户，则系统会在您的账户中创建一个具有必要资源和权限的 Lambda 函数。然后，您可以根据使用案例将业务逻辑添加到 lambda 函数。

操作时请记住以下几点：
+ 使用 [ GetRawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_GetRawMessageContent.html)API 检索原始消息内容。有关更多信息，请参阅 [使用检索消息内容 AWS Lambda](lambda-content.md)。
+ 获得原始邮件后，请更改 MIME 内容。完成后，将邮件上传到您账户中的 Amazon Simple Storage Service (Amazon S3) 存储桶。确保 S3 存储桶使用与您的 Amazon WorkMail 操作 AWS 账户 相同的 AWS 区域，并确保它使用与您的 API 调用相同的 AWS 区域。
+  WorkMail 为了让 Amazon 处理请求，您的 S3 存储桶必须具有正确的策略才能访问 S3 对象。有关更多信息，请参阅 [Example S3 policy](#s3example)。
+ 使用 [ PutRawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_PutRawMessageContent.html)API 将更新后的消息内容发送回亚马逊 WorkMail。

**注意**  
`PutRawMessageContent`API 可确保更新消息的 MIME 内容符合 RFC 标准以及[RawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_RawMessageContent.html)数据类型中提及的标准。入站到您的 Amazon WorkMail 组织的电子邮件并不总是符合这些标准，因此 `PutRawMessageContent` API 可能会拒绝这些标准。在这种情况下，您可以查阅返回的错误消息，了解有关如何解决任何问题的更多信息。

**Example S3 策略示例**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "workmail.REGION.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::My-Test-S3-Bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "Bool": {
                    "aws:SecureTransport": "true"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:workmailmessageflow:us-east-1:111122223333:message/WORKMAIL_ORGANIZATION_ID/*"
                }
            }
        }
    ]
}
```

以下示例显示了 Lambda 函数如何使用 Python 运行时更新传输中电子邮件的主题。

```
    import boto3
    import os
    import uuid
    import email
     
    def email_handler(event, context):
        workmail = boto3.client('workmailmessageflow', region_name=os.environ["AWS_REGION"])
        s3 = boto3.client('s3', region_name=os.environ["AWS_REGION"])
        
        msg_id = event['messageId']
        raw_msg = workmail.get_raw_message_content(messageId=msg_id)
        parsed_msg = email.message_from_bytes(raw_msg['messageContent'].read())
        
        # Updating subject. For more examples, see https://github.com/aws-samples/amazon-workmail-lambda-templates.
        parsed_msg.replace_header('Subject', "New Subject Updated From Lambda")
       
        # Store updated email in S3
        key = str(uuid.uuid4());
        s3.put_object(Body=parsed_msg.as_bytes(), Bucket="amzn-s3-demo-bucket", Key=key)
     
        # Update the email in WorkMail
        s3_reference = {
            'bucket': "amzn-s3-demo-bucket",
            'key': key
        }
        content = {
            's3Reference': s3_reference
        }
        workmail.put_raw_message_content(messageId=msg_id, content=content)
```

有关分析传输中消息内容的更多方法示例，请参阅中的[ amazon-workmail-lambda-templates](https://github.com/aws-samples/amazon-workmail-lambda-templates)存储库。 GitHub

# 管理对 Amazon WorkMail 消息流 API 的访问权限
<a name="lambda-content-access"></a>

使用 AWS Identity and Access Management (IAM) 策略来管理对亚马逊 WorkMail 消息流 API 的访问权限。

Amazon Mess WorkMail age Flow API 仅使用一种资源类型，即传输中的电子邮件。每封传输中的电子邮件均具有与之关联的唯一 Amazon 资源名称 (ARN)。

以下示例显示了与传输中的电子邮件关联的 ARN 的语法。

```
arn:aws:workmailmessageflow:region:account:message/organization/context/messageID
```

在上述示例中，可更改的字段如下所示：
+ **区域** — 您的亚马逊 WorkMail 组织的 AWS 区域。
+ **账户**-您的亚马逊 WorkMail 组织的 AWS 账户 ID。
+ **组织**-您的亚马逊 WorkMail组织编号。
+ **上下文**：指示邮件是发往 (`incoming`) 您的组织，还是从您的组织发出 (`outgoing`)。
+ **邮件 ID**：作为输入传递给 Lambda 函数的唯一电子邮件 ID。

以下示例 IDs 包括与传输中的传入电子邮件关联的 ARN 示例。

```
arn:aws:workmailmessageflow:us-east-1:111122223333:message/m-n1pq2345678r901st2u3vx45x6789yza/incoming/d1234567-8e90-1f23-456g-hjk7lmnop8q9                
```

您可以 ARNs 将其用作您的 IAM 用户政策`Resource`部分中的资源，以管理对传输中的 Amazon WorkMail 消息的访问权限。

## Amazon WorkMail 消息流访问权限的 IAM 策略示例
<a name="lambda-content-policies"></a>

以下示例策略授予 IAM 实体对您中每个 Amazon WorkMail 组织的所有入站和出站消息的完全读取权限 AWS 账户。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "workmailmessageflow:GetRawMessageContent"
            ],
            "Resource": "arn:aws:workmailmessageflow:us-east-1:111122223333:message/*",
            "Effect": "Allow"
        }
    ]
}
```

------

如果您的组织中有多个组织 AWS 账户，则还可以限制对一个或多个组织的访问权限。如果某些 Lambda 函数应仅用于特定组织，就可以使用此功能。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "workmailmessageflow:GetRawMessageContent"
            ],
            "Resource": "arn:aws:workmailmessageflow:us-east-1:111122223333:message/organization/*",
            "Effect": "Allow"
        }
    ]
}
```

------

您还可以根据消息是发往 (`incoming`) 您的组织还是从您的组织发出 (`outgoing`)，选择授予对消息的访问权限。要执行此操作，请在 ARN 中使用限定词 `incoming` 或 `outgoing`。

以下示例策略仅授予对发往您的组织的消息的访问权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "workmailmessageflow:GetRawMessageContent"
            ],
            "Resource": "arn:aws:workmailmessageflow:us-east-1:111122223333:message/organization/incoming/*",
            "Effect": "Allow"
        }
    ]
}
```

------

以下示例策略授予 IAM 实体对您中每个 Amazon WorkMail 组织的所有入站和出站消息的完全读取和更新权限 AWS 账户。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "workmailmessageflow:GetRawMessageContent",
                "workmailmessageflow:PutRawMessageContent"
            ],
            "Resource": "arn:aws:workmailmessageflow:us-east-1:111122223333:message/*",
            "Effect": "Allow"
        }
    ]
}
```

------

# 测试电子邮件流规则
<a name="test-email-flow-rule"></a>

要检查当前规则配置，您可以测试该配置将对特定电子邮件地址采取什么操作。

**测试电子邮件流规则**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 在导航窗格中，依次选择 **Organization settings (组织设置)** 和 **Inbound/Outbound rules (入站/出站规则)**。

1. 在 **Test configuration (测试配置)** 旁边，输入要测试的发件人和收件人的完整电子邮件地址。

1. 选择**测试**。将显示要为提供的电子邮件地址采取的操作。

# 删除电子邮件流规则
<a name="remove-email-flow-rule"></a>

在您删除电子邮件流规则后，更改立即应用。

**删除电子邮件流规则**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 在导航窗格中，依次选择 **Organization settings (组织设置)** 和 **Inbound/Outbound rules (入站/出站规则)**。

1. 选择规则，然后选择 **Remove**。

1. 在确认提示符下，选择 **Remove (删除)**。

# 对传入电子邮件执行 DMARC 策略
<a name="inbound-dmarc"></a>

电子邮件域使用域名系统 (DNS) 记录来确保安全。它们可以保护您的用户免受常见的攻击，例如欺骗或网络钓鱼。DNS 记录通常包括基于域的邮件身份验证、报告和一致性 (DMARC) 记录，这些记录由发送电子邮件的域所有者设置。DMARC 记录包括用于指定当电子邮件未通过 DMARC 检查时所要执行的操作的策略。您可以选择是否对发送给您的组织的电子邮件执行 DMARC 策略。

默认情况下，新的亚马逊 WorkMail 组织已开启DMARC执法。

**启用 DMARC 执行**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 在导航面板中选择**组织设置**。此时将出现**组织设置**页面并显示一组选项卡。

1. 选择 **DMARC** 选项卡，然后选择**编辑**。

1. 将 **DMARC 执行**滑块移动到“开启”位置。

1. 选中**我确认，开启 DMARC 执行可能会导致传入电子邮件被删除或隔离，具体取决于发件人的域配置**旁边的复选框。

1. 选择**保存**。

**禁用 DMARC 执行**
+ 按照上一部分中的步骤操作，但将 **DMARC 执行**滑块移动到“关闭”位置。

## 使用电子邮件事件日志记录来跟踪 DMARC 执行
<a name="logging-dmarc"></a>

启用 DMARC 执行可能会导致入站电子邮件被删除或标记为垃圾邮件，具体取决于发件人如何配置其域。如果发件人将电子邮件域配置错误，您的用户可能会无法接收合法电子邮件。要检查是否有未发送给用户的电子邮件，您可以为亚马逊 WorkMail 组织启用电子邮件事件记录。然后，可以对根据发件人的 DMARC 策略筛选出的传入电子邮件查询电子邮件事件日志。

在使用电子邮件事件记录来跟踪 DMARC 执行之前，请先在 Amazon WorkMail 控制台中启用电子邮件事件记录。为了充分利用日志数据，请在记录电子邮件事件的同时留出一些时间。有关更多信息和说明，请参阅 [启用电子邮件事件日志记录](tracking.md#enable-tracking)。

**使用电子邮件事件日志记录跟踪 DMARC 执行**

1. 在 CloudWatch Insights 控制台的 “**日志**” 下，选择 “**见解**”。

1. 在**选择日志组**中，选择您的 Amazon WorkMail 组织的日志组。例如，/aws/workmail/events/organization-别名。

1. 选择要查询的时间段。

1. 运行以下查询：**stats count() by event.dmarcPolicy \$1 filter event.dmarcVerdict == "FAIL"**

1. 选择**运行查询**。

您还可以为这些事件设置自定义指标。有关更多信息，请参阅[创建指标筛选器](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringPolicyExample.html)。

# 标记组织
<a name="org-tag"></a>

通过为 Amazon WorkMail 组织资源添加标签，您可以：
+ 在 AWS 账单与成本管理 控制台中区分组织。
+ 通过将亚马逊 WorkMail 组织资源添加到 AWS Identity and Access Management (IAM) 权限策略声明的`Resource`元素来控制对这些资源的访问。

有关 Amazon WorkMail 资源级权限的更多信息，请参阅。[资源](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources)有关基于标签控制访问的更多信息，请参阅[基于亚马逊 WorkMail 标签的授权](security_iam_service-with-iam.md#security_iam_service-with-iam-tags)。

亚马逊 WorkMail 管理员可以使用亚马逊 WorkMail 控制台为组织添加标签。

**向 Amazon WorkMail 组织添加标签**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 选择**标签**。

1. 对于 **Organization tags (组织标签)**，请选择 **Add new tag (添加新标签)**。

1. 在**键**中，输入标识标签的名称。

1. （可选）对于 **Value (值)**，输入标签的值。

1. （可选）重复步骤 4-6 以向组织添加更多标签。最多可以添加 50 个标签。

1. 选择 **保存** 以保存您的更改。

您可以在 Amazon WorkMail 控制台中查看您的组织标签。

开发人员还可以使用 AWS SDK 或 AWS Command Line Interface (AWS CLI) 标记组织。有关更多信息，请参阅 [Amazon WorkMail API 参考或`UntagResource`命令参考](https://docs.aws.amazon.com/workmail/latest/APIReference/Welcome.html)中的`ListTagsForResource`、和[AWS CLI 命令](https://docs.aws.amazon.com/cli/latest/reference/workmail/index.html)。`TagResource`

您可以随时使用 Amazon WorkMail 控制台从组织中移除标签。

**从 Amazon WorkMail 组织中移除标签**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 选择**标签**。

1. 对于 **Organization tags (组织标签)**，选择要删除的标签旁边的 **Remove (删除)**。

1. 选择 **Submit (提交)** 可保存您的更改。

# 使用访问控制规则
<a name="access-rules"></a>

亚马逊的访问控制规则 WorkMail 允许管理员控制如何向其组织的用户和模拟角色授予访问亚马逊的权限。 WorkMail每个 Amazon WorkMail 组织都有默认的访问控制规则，该规则允许所有用户和添加到该组织中的模拟角色访问邮箱，无论他们使用哪种访问协议或 IP 地址。管理员可以编辑默认规则或将其替换为自己的规则、添加新规则或删除规则。

**警告**  
如果管理员删除了组织的所有访问控制规则，Amazon 将 WorkMail阻止对该组织邮箱的所有访问权限。

管理员可以应用将根据以下条件允许或拒绝访问的访问控制规则：
+ **协议**：用于访问邮箱的协议。**示例包括**自动发现**、**EWS**、**IMAP、**SMTP **ActiveSync******、**Windows 版 Outlook** 和 Webmail。**
+ **IP 地址**-用于访问邮箱的 IPv4 CIDR 范围。
+ **Amazon WorkMail 用户**-贵组织中用于访问邮箱的用户。
+ **模拟角色**：贵组织中用于访问邮箱的模拟角色。有关更多信息，请参阅 [管理模拟角色](managing-impersonation-roles.md)。

除了用户的邮箱和文件夹权限之外，管理员还会应用访问控制规则。有关更多信息，请参阅[使用邮箱权限](mail_perms_overview.md)《*Amazon WorkMail 用户指南》*中的 “[共享文件夹和文件夹权限”](https://docs.aws.amazon.com/workmail/latest/userguide/share-folders.html)。

**注意**  
启用 Windows 版 Outlook 的访问权限时，建议同时启用 Autodiscover 和 EWS 的访问权限。
访问控制规则不适用于 Amazon WorkMail 控制台或 SDK 访问权限。请改用 AWS Identity and Access Management (IAM) 角色或策略。有关更多信息，请参阅 [Amazon 的身份和访问管理 WorkMail](security-iam.md)。

## 创建访问控制规则
<a name="create-acr"></a>

从 Amazon 控制台创建新的访问 WorkMail 控制规则。

**创建新的访问控制规则**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 选择 **Access control rules (访问控制规则)**。

1. 选择 **Create rule**（创建规则）。

1. 对于 **Description (描述)**，输入规则的描述。

1. 对于 **Effect (效果)**，选择 **Allow (允许)** 或 **Deny (拒绝)**。这将根据您在下一步中选择的条件来允许或拒绝访问。

1. 对于**此规则应用于符合以下条件的请求...**，选择要应用于规则的条件，例如，包含或排除特定的协议、IP 地址、用户或模拟角色。

1. （可选）如果输入 IP 地址范围、用户或模拟角色，请选择**添加**以将其添加到规则中。

1. 选择 **Create rule**（创建规则）。

## 编辑访问控制规则
<a name="edit-acr"></a>

从 Amazon 控制台编辑新的和默认的访问 WorkMail 控制规则。

**编辑访问控制规则**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 选择 **Access control rules (访问控制规则)**。

1. 选择要编辑的规则。

1. 选择**编辑规则**。

1. 根据需要编辑描述、效果和条件。

1. 选择**保存更改**。

**重要**  
更改访问规则时，受影响的邮箱可能需要五分钟才能遵循更新的规则。在此期间，访问受影响邮箱的客户端可能会出现不一致的行为。但是，在测试规则时，您会立即看到正确的行为。有关测试规则的更多信息，请参阅下一部分中的相关步骤。

## 测试访问控制规则
<a name="test-acr"></a>

要了解贵组织的访问控制规则是如何应用的，请在 Amazon WorkMail 控制台中测试这些规则。

**测试组织的访问控制规则**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 选择 **Access control rules (访问控制规则)**。

1. 选择 **Test rules (测试规则)**。

1. 对于 **Request context (请求上下文)**，选择要测试的协议。

1. 对于 **Source IP address (源 IP 地址)**，输入要测试的 IP 地址。

1. 对于**请求执行者**，选择要为其测试的**用户**或**模拟角色**。

1. 选择要为其测试的**用户**或**模拟角色**。

1. 选择**测试**。

测试结果将显示在 **Effect (效果)** 下。

## 删除访问控制规则
<a name="delete-acr"></a>

从 Amazon 控制台中删除您不再需要的访问 WorkMail控制规则。

**警告**  
如果管理员删除了组织的所有访问控制规则，Amazon 将 WorkMail阻止对该组织邮箱的所有访问权限。

**删除访问控制规则**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 选择 **Access control rules (访问控制规则)**。

1. 选择要删除的规则。

1. 选择 **Delete rule (删除规则)**。

1. 选择**删除**。

# 设置邮箱保留策略
<a name="mailbox-retention-policy"></a>

您可以为您的 Amazon WorkMail 组织设置邮箱保留政策。保留策略会在您选择的时间段后自动从用户邮箱中删除电子邮件。您可以选择要应用保留策略的邮箱文件夹。此外，还可以选择是否为不同的文件夹设置不同的保留策略。邮箱保留策略应用于您的组织中的所有用户邮箱中的选定文件夹。用户不能覆盖保留策略。

**设置邮箱保留策略**

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

   如果需要，可以更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 选择 **Retention policy (保留策略)**。

1. 对于 **Folder actions (文件夹操作)**，在要包括在策略中的每个邮箱文件夹旁边，选择 **Delete (删除)** 或 **Permanently delete (永久删除)**。

1. 输入在删除电子邮件之前将电子邮件保留在每个邮箱文件夹中的天数。

1. 选择**保存**。

留出 48 小时来为组织应用保留策略。如果您选择 “**删除**文件夹” 操作，则用户可以从 Amazon WorkMail Web 应用程序和支持的客户端恢复已删除的电子邮件。如果选择**永久删除**文件夹操作，则电子邮件在删除后将无法恢复。

保留策略保留项目的天数基于项目的创建、修改或移动时间。例如，如果保留策略在一年后删除项目，则该策略将从您创建该项目或上次对该项目采取操作之日起计算保留天数。它不受实施保留策略的日期的影响。