背景: 为了给 Example.com 配置 support@ 企业邮箱,不想买 Google Workspace($6/月),于是采用了“拼接”方案。

  • 收信:Cloudflare Email Routing(转发到 Gmail)。
  • 发信:AWS SES(SMTP 服务)。
  • 客户端:Gmail 网页版(统一收发)。

1. 核心架构

  • 收件路径:客户 -> support@ -> Cloudflare -> 转发至 Gmail。
  • 发件路径:Gmail -> AWS SMTP 接口 -> AWS SES -> 客户。

2. 配置步骤 (Cheatsheet)

第一步:AWS SES 准备 (发信引擎)

  1. 验证域名:在 AWS SES (Region: us-west-2) 添加 Example.com,获取 DKIM 的 3 个 CNAME 记录。
  2. 移出沙盒:刚注册是 Sandbox 模式,必须点击 “Request Production Access”,理由填真实业务用途(如 Transactional emails for users)。
  3. 获取凭证
    • 入口:SES -> SMTP Settings -> Create SMTP credentials。
    • 注意:下载 CSV 保存好,User/Pass 只显示一次。这不是 AWS 登录密码!

第二步:DNS 配置 (Cloudflare)

为了不进垃圾箱,必须配齐“安保三件套”:

  • DKIM (CNAME):把 AWS 给的 3 个 CNAME 填入。
  • SPF (TXT):合并 Cloudflare 和 AWS 的记录。
    • 值:v=spf1 include:_spf.mx.cloudflare.net include:amazonses.com ~all
  • DMARC (TXT):
    • Name: _dmarc
    • Content: v=DMARC1; p=none; (先设为观察模式,防止误杀)。

第三步:Gmail 配置 (客户端)

  1. 添加发件人:设置 -> 账号和导入 -> 添加其他电子邮件地址。
    • 邮箱:support@Example.com
    • 取消勾选“作为别名”。
  2. SMTP 填空
    • Server: email-smtp.us-west-2.amazonaws.com (关键!要和 AWS 区域一致)
    • Port: 587
    • User/Pass: 填入第一步下载的 CSV 里的信息。
    • Encryption: TLS。
  3. 回复设置 (重要)
    • 勾选 “Reply from the same address the message was sent to”
    • 作用:别人发给 support,我点回复自动用 support 回,不暴露私人 Gmail。

3. 踩坑记录 (Troubleshooting)

❌ 坑 1:报错 554 Message rejected: Email address is not verified

  • 现象:只能发给自己,发给别人报错。
  • 原因:AWS 账号还在 Sandbox (沙盒模式)
  • 解法:去后台点 Request Production Access,通过后即可解封。

❌ 坑 2:报错 554 failed the check in region US-EAST-1

  • 现象:账号解封了,发信还是报错 554,提示区域错误。
  • 原因区域不匹配。我在 AWS 美西 (us-west-2) 验证的域名,但 Gmail 里 SMTP Server 填了美东 (us-east-1) 的地址。
  • 解法:Gmail 设置里把 SMTP 服务器改为 email-smtp.us-west-2.amazonaws.com

❌ 坑 3:MxToolbox 报 DMARC Policy Not Enabled

  • 原因:因为我设置的是 p=none
  • 结论:不用管。这是为了初期稳定,避免邮件被拒收。

4. 最终效果

  • SPF, DKIM, DMARC 全绿 (PASS)。
  • 在 Gmail 里无缝切换身份。
  • 邮件送达率极高,不进垃圾箱。

邮箱评分

关注指标

声誉指标 / Reputation metrics

退信率 / Bounce rate

投诉率 / Complaint rate

账号状态 / Account status

CloudWatch 自动监控 + 报警