背景:
为了给 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 准备 (发信引擎)
- 验证域名:在 AWS SES (Region: us-west-2) 添加
Example.com,获取 DKIM 的 3 个 CNAME 记录。 - 移出沙盒:刚注册是 Sandbox 模式,必须点击 “Request Production Access”,理由填真实业务用途(如 Transactional emails for users)。
- 获取凭证:
- 入口: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;(先设为观察模式,防止误杀)。
- Name:
第三步:Gmail 配置 (客户端)
- 添加发件人:设置 -> 账号和导入 -> 添加其他电子邮件地址。
- 邮箱:
support@Example.com - 取消勾选“作为别名”。
- 邮箱:
- SMTP 填空:
- Server:
email-smtp.us-west-2.amazonaws.com(关键!要和 AWS 区域一致) - Port:
587 - User/Pass: 填入第一步下载的 CSV 里的信息。
- Encryption: TLS。
- Server:
- 回复设置 (重要):
- 勾选 “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 里无缝切换身份。
- 邮件送达率极高,不进垃圾箱。
邮箱评分
- mailgenius
- SPF Checker
- 邮箱评分:快速确认企业邮箱配置(DNS、黑名单)是否没问题,有免费额度
- glockapps
- mxtoolbox