修复 AWS SNS 弹回

我在第 12 步卡住了

步骤

  1. 在支持邮件接收的 AWS 区域中创建一个 Simple Email Service (SES) 域名身份,your.domain
  2. 验证域名身份
  3. 创建一个 Simple Notification Service (SNS) 主题,feedback-sns-topic,用于反馈通知
  4. 配置 your.domain 域名身份
    a. 启用邮件反馈转发
    b. 配置退信和投诉(非送达)反馈通知以使用 SNS feedback-sns-topic 主题
  5. 在 SNS feedback-sns-topic 主题上创建一个订阅
    a. 协议为 HTTPS(您不会还在使用 HTTP,对吧?)
    b. 将端点设置为 https://your.domain/webhooks/aws(参见 VERP 帖子
    c. 选择启用原始消息传递
  6. 创建另一个 SNS 主题,incoming-sns-topic,用于接收邮件
  7. 创建一个 SES 邮件接收规则集,inbound-mail-set,如果不存在现有的活动规则集。如果存在,则使用它,因为只能有一个活动的规则集
  8. inbound-mail-set 接收规则集中创建一个收据规则
    a. 将收件人条件设置为 your.domain
    b. 添加一个将消息发布到 SNS 主题 incoming-sns-topic 的操作,编码为 Base64
  9. 在您的 Discourse 实例中为用户 system 创建一个 API 密钥,授予对 email 资源的 receive email 操作
  10. 在 Secret Manager 中创建一个名为 email-handler-secret 的 Secret,包含以下键及其对应的值:
    • api_endpoint - https://your.domain/admin/email/handle_mail
    • api_key - 来自步骤 9
    • api_username - system,除非您在步骤 9 中使用了其他名称
  11. 创建一个用于 python3.10 运行时的 Lambda 层,lambda-receiver-layer,其中包含 requestsaws-lambda-powertools
  12. python3.10 运行时创建一个 Lambda 函数,email-receiver-lambda,包含接收器代码: