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