如何使用 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.    创建 Amazon SES 接收规则:将入站电子邮件发送到 S3 存储桶。

4.    测试 Amazon SES 规则。

解决方法

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

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

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

1.    创建 Amazon S3 存储桶

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

3.    选择权限选项卡。

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.    选择保存

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

1.    打开 Amazon SES 控制台

2.    在导航窗格中的电子邮件接收下,选择规则集

3.    如果您要将规则添加到现有的活跃规则集,请跳至步骤 4。要创建新的规则集,请选择创建规则集,输入规则集名称,然后选择创建规则集

注意:如果您创建新的规则集,请务必选中该规则集,然后选择设置为活动规则集。在任何给定时间,都只能将其中一个接收规则集设置为活动规则集。 

4.    选择查看活跃规则集

5.    选择创建规则

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

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

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

8.    选择下一步

9.    在规则详细信息中,填写以下字段:
对于规则名称,请输入您的规则名称。
请确保选中已启用复选框,以便将规则创建为活跃规则。
(可选)根据使用案例的需要,选择需要 TLS启用垃圾邮件和病毒扫描
对于规则集,请验证已选择您的活动规则集。活跃规则集名称包含 (Active)
对于在规则后插入,请在规则集中选择规则所需的位置。

10.    选择下一步

11.    选择创建规则

测试 Amazon SES 规则

1.    从 Amazon SES 控制台的导航窗格中,选择

2.    选择您的已验证域。

3.    选择发送测试电子邮件。然后,填写以下字段:
对于发件人,请输入希望发送测试电子邮件的电子邮件地址。
对于收件人,请输入包含需要测试的域的电子邮件地址。
对于主题正文,请输入示例电子邮件文本。

4.    选择发送测试电子邮件

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

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

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