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

2 分钟阅读
0

我想使用 Amazon Simple Email Service(Amazon SES)接收入站电子邮件,并存储这些电子邮件以供存档或进一步处理。

解决方法

注意: 在开始之前,请验证您的端点是否位于支持电子邮件接收的 AWS 区域。除 Amazon S3 桶外,您用于使用 Amazon SES 接收电子邮件的所有 AWS 资源必须与 Amazon SES 端点位于同一 AWS 区域。

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

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

为 Amazon SES 发布 MX 记录以接收电子邮件

要让 Amazon SES 接收您域的入站电子邮件,请发布邮件交换器记录(MX 记录)。在域的 DNS 配置中包含 Amazon SES 入站接收端点

创建一个 Amazon S3 桶,可以存储来自于 Amazon SES 的电子邮件

1.    打开 Amazon S3 控制台

2.    创建 Amazon S3 桶

3.    从桶列表中选择桶名称。

4.    选择权限选项卡。

5.    选择桶策略

6.    在桶策略编辑器下,输入以下策略。
AWSDOC-EXAMPLE-BUCKET 替换为要写入的 S3 桶的名称。
请将 111122223333 替换为您的 AWS 账户 ID。请将 region 替换为要创建接收规则的 AWS 区域。请将 rule_set_name 替换为包含接收规则的规则集的名称。请将 receipt_rule_name 替换为接收规则的名称。如果您在 Amazon SES 中没有配置 rule_set_namereceipt_rule_name,则可以使用任何值来配置桶策略。当您在下一部分中创建规则集和规则时,请使用相同的值。

{
  "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:SourceAccount":"111122223333",
          "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name"
        }
      }
    }
  ]
}

7.    选择保存
**注意:**有关此策略的详细信息,请参阅授予 Amazon SES 向 S3 桶写入的权限

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

  1. 打开 Amazon SES 控制台
  2. 在导航窗格中的所有规则集下,选择电子邮件接收
  3. 要将该规则添加到活动规则集,请继续执行第 4 步。要创建新的规则集,请选择创建规则集,输入规则集名称,然后选择创建规则集
    注意:如果您要创建一个新的规则集,请选择该规则集,然后选择设置为活动规则集。在任何特定时间,只有一个接收规则集可以是活动规则集。
  4. 选择活动规则集
  5. 选择创建规则
    **注意:**您也可以选择使用以下步骤中描述的相同值更新现有规则。
  6. 输入唯一的规则名称。如果您的用例需要 TLS 或垃圾邮件和病毒扫描,请选择需要 TLS启用垃圾邮件和病毒扫描。要使其成为活动规则,请选中**已启用 **复选框。
  7. 选择下一步
  8. 要仅存储 Amazon SES 发送到已验证的特定域的电子邮件,请选择添加收件人条件,然后输入电子邮件地址作为收件人。要存储 Amazon SES 发送到所有已验证域的所有电子邮件,请勿输入任何电子邮件地址。然后,选择下一步
  9. 选择添加新操作,然后选择传输至 S3 桶。完成以下步骤:      
    对于 S3 桶,选择您创建的用于存储电子邮件的桶。         
    对于对象键前缀,输入要存储电子邮件的 S3 前缀。如果您将此字段留空,那么 Amazon SES 会将电子邮件存储在桶的根目录中。
    (可选)为 Amazon SES 选择消息加密,使用 AWS Key Management Server(AWS KMS)密钥加密您的电子邮件。
    **注意:**如果您使用的密钥不是默认的根密钥,则必须为 Amazon SES 提供使用 AWS KMS 密钥的权限。在将电子邮件发送到 S3 桶进行存储之前,Amazon SES 会使用 Amazon S3 加密客户端对您的电子邮件进行加密。Amazon SES 不使用 Amazon S3 服务器端加密来加密您的电子邮件。
  10. (可选)对于 SNS 主题,选择 Amazon Simple Notification Service(Amazon SNS)主题,以便在 Amazon SES 向 S3 桶送达电子邮件时通知您。
  11. 选择下一步
  12. 选择创建规则

测试 Amazon SES 规则

  1. 打开 Amazon SES 控制台
  2. 在导航窗格中,选择已验证身份
  3. 选择您已验证的域。
  4. 选择发送测试电子邮件。然后,填写以下字段:
    对于电子邮件格式,选择格式化
    对于发件人地址,输入您要将测试电子邮件发送到的电子邮件地址。
    场景下,选择自定义
    对于自定义收件人,输入包含要测试的域的电子邮件地址。
    主题正文中,输入示例电子邮件文本。
  5. 选择发送测试电子邮件
  6. 打开 Amazon S3 控制台
  7. 打开您配置的用于存储 Amazon SES 电子邮件的桶。
  8. 验证桶是否包含您发送的测试电子邮件。可能需要几分钟才会出现测试电子邮件。

相关信息

为什么 Amazon SES 上的入站电子邮件没有送达或保存到我的 Amazon S3 桶?

设置 Amazon SES 电子邮件接收

AWS 官方
AWS 官方已更新 1 年前