如何使用 Amazon SES 接收入站电子邮件,然后将这些邮件存储在 Amazon S3 上?

上次更新时间:2020 年 6 月 11 日

我希望使用 Amazon Simple Email Service (Amazon SES) 接收入站电子邮件。我还想存储这些电子邮件以便存档或进行进一步处理。该如何操作?

简短描述

按照以下步骤来设置 Amazon SES 以接收入站电子邮件,然后存储这些电子邮件:

1.    使用 Amazon SES 验证您的电子邮件域。

2.    设置 Amazon Simple Storage Service (Amazon S3) 存储桶,使之具有存储来自 Amazon SES 的电子邮件的权限。

3.    创建一个将入站电子邮件发送到 S3 存储桶的 Amazon SES 接收规则。

4.    测试 Amazon SES 规则。

解决方法

使用 Amazon SES 验证您的电子邮件域

您必须验证要用于接收电子邮件的域

设置 Amazon Simple Storage Service (Amazon S3) 存储桶,并使其具有存储来自 Amazon SES 的电子邮件的权限

1.    创建 Amazon S3 存储桶

2.    创建存储桶后,从 Amazon S3 控制台的存储桶列表中选择其名称。

3.    选择Permissions (权限)选项卡。

4.    选择存储桶策略

5.    在存储桶策略编辑器中,输入以下策略:

注意:请将 AWSDOC-EXAMPLE-BUCKET 替换为您的存储桶名称。然后,将 111122223333 替换为您的 AWS 账户 ID。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowSESPuts",
            "Effect": "Allow",
            "Principal": {
                "Service": "ses.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*",
            "Condition": {
                "StringEquals": {
                    "aws:Referer": "111122223333"
                }
            }
        }
    ]
}

注意:有关此策略的更多信息,请参阅为 Amazon SES 授予写入 Amazon S3 存储桶的权限

6.    选择 Save

创建一个将入站电子邮件发送到 S3 存储桶的 Amazon SES 接收规则

1.    打开 Amazon SES 控制台

2.    在导航窗格中的 Email Receiving (电子邮件接收) 下面,选择 Rule Sets (规则集)

3.    如果要将规则添加到现有活动规则集,请跳至步骤 4。要创建新规则集,请选择 Create a Rule Set (创建规则集),输入规则集名称,然后选择 Create a Rule Set (创建规则集)

注意:如果创建了新规则集,请确保选择它,然后选择 Set as Active Rule Set(设置为活动规则集)。在任何给定时间,只有一个接收规则集可以作为活动规则集。 <span style="font-size:11.0pt;line-height:107%; font-family:"Calibri",sans-serif;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">

4.    选择 View Active Rule Set (查看活动规则集)

5.    选择 Create Rule(创建规则)。

注意:您还可以选择使用以下步骤中描述的相同值更新现有规则。

6.    在 Recipients(收件人)下面,如果您要存储仅发送到已验证域的某些电子邮件地址的电子邮件,请输入这些电子邮件地址作为收件人。如果您希望存储发送到所有已验证域的所有电子邮件,请不要输入任何收件人,然后选择 Next Step(下一步)。

7.    在 Actions (操作) 下面,对于 Add action (添加操作),选择 S3。然后,完成下面这些字段:
对于 S3 存储桶,请选择您创建的用于存储电子邮件的存储桶。
(可选)对于对象键前缀,您可以输入要在其中存储电子邮件的 S3 前缀。如果将此字段留空,则电子邮件将存储在存储桶的根目录中。
(可选)对于 Encrypt Message(加密邮件),如果您希望 Amazon SES 使用 AWS Key Management Service (AWS KMS) 密钥对电子邮件进行加密,请选中该框。
注意:如果您使用原定根密钥 (aws/ses) 设置以外的其他密钥,那么您必须授予 Amazon SES 使用 AWS KMS 密钥的权限。在将电子邮件发送到 S3 存储桶进行存储之前,Amazon SES 会使用 Amazon S3 加密客户端对电子邮件进行加密。您的电子邮件未使用 Amazon S3 服务器端加密进行加密。
(可选)对于 SNS topic(SNS 主题),选择一个 Amazon Simple Notification Service (Amazon SNS) 主题,以便在电子邮件传送到 S3 存储桶时发出通知。

8.    选择 Next Step

9.    在 Rule Details (规则详细信息) 下,完成下面这些字段:
对于规则名称,请输入您的规则名称。
请确保选中 Enabled(已启用)复选框,以便将规则创建为活跃规则。
(可选)如果您的使用案例需要,选择 Require TLS(需要 TLS)或 Enable spam and virus scanning(启用垃圾邮件和病毒扫描)。
对于 Rule set (规则集),验证您的活动规则集是否已选中。活动规则集的名称中包含 (Active) (活动) 字样。
对于 Insert after rule (在规则后插入),请在规则集中选择所需的规则位置。

10.    选择 Next Step

11.    选择 Create Rule(创建规则)。

测试 Amazon SES 规则

1.    在 Amazon SES 控制台的导航窗格中,选择 Domains (域)

2.    选择已验证的域。

3.    选择 Send a Test Email (发送测试电子邮件)。然后,完成下面这些字段:
对于 From (发件人),请输入您要从其发送测试电子邮件的电子邮件地址。
对于 To (收件人),请输入您要测试的域的电子邮件地址。
对于 Subject (主题)Body (正文),输入示例电子邮件文本。

4.    选择 Send Test Email (发送测试电子邮件)

5.    几分钟后,打开 Amazon S3 控制台

6.    打开您配置为存储 Amazon SES 电子邮件的存储桶。

7.    验证该存储桶是否包含您发送的测试电子邮件。