← Blog

如何从Amazon SES迁移到Mailer To Go

指南 迁移, Amazon SES, SMTP, 可递送性 July 9, 2026 by 邮件服务团队
从 Amazon SES 迁移事务性电子邮件到 Mailer To Go 的分步指南:发送域设置、SPF/DKIM/DMARC、交换 SES SMTP/SESv2 凭证、导出您的 SES 抑制列表,以及具有回滚功能的安全并行运行转换。

Amazon SES 功能强大且成本低廉,但它将大量重复性工作转嫁给你:IAM 策略、区域选择、配置集、沙箱限制和自我信誉监控。将你的事务性邮件移至 Mailer To Go 是对 DNS 和凭证的受控交换——关键在于跨越压制列表并完成切换而不失信誉。以下是完整的迁移步骤,含真实配置和可逆的灰度发布。

还在犹豫?Amazon SES 替代方案对比解释了原因。本指南介绍的是方法。

开始前:清点 SES 正在做什么

SES 将配置分散在多个 AWS 界面上。在做任何改动前,先捕捉所有内容:

第 1 步 — 创建你的 Mailer To Go 发送域名

在 mailertogo.com 注册并添加一个发送子域名 — 我们推荐 mtg.yourdomain.com — 而不是根域名。它隔离信誉,如果你委托它,让我们管理 DNS。参见为什么 Mailer To Go 从 mtg.yourdomain.com 发送。

第 2 步 — 身份验证(SPF、DKIM、DMARC)

从你的仪表板发布 SPF 和 DKIM 记录,以及根处的 DMARC 策略。你已经在 SES 中完成过 DKIM 舞蹈(它为每个身份生成 CNAME),所以这很熟悉 — 只是值不同。在重叠期间保持 SES 和 Mailer To Go 都获得域名授权。完整演练含真实记录和 dig 验证:电子邮件身份验证,端到端。

第 3 步 — 交换你的凭证

SMTP。 SES 的标志是像 email-smtp.us-east-1.amazonaws.com 这样的主机和 IAM 衍生的 SMTP 凭证(来自用户生成,而非你的 AWS 访问密钥)。将同一邮件程序指向 Mailer To Go:

# 之前 — Amazon SES
host: email-smtp.us-east-1.amazonaws.com   port: 587
username: <SES SMTP username>   (IAM 衍生 — 非你的 AWS 访问密钥)
password: <SES SMTP password>

# 之后 — Mailer To Go
host: smtp.mailertogo.com   port: 587   (或 465 用于 SSL)
username: <MAILERTOGO_SMTP_USER>
password: <MAILERTOGO_SMTP_PASSWORD>

在 Rails 中,那只是新的环境值 — 无需代码改动:

# config/environments/production.rb
config.action_mailer.smtp_settings = {
  address:         ENV["MAILERTOGO_SMTP_HOST"],   # smtp.mailertogo.com
  port:            587,
  user_name:       ENV["MAILERTOGO_SMTP_USER"],
  password:        ENV["MAILERTOGO_SMTP_PASSWORD"],
  authentication:  :plain,
  enable_starttls: true
}

API。 如果你调用 SESv2 API 或 SDK,你可以通过 SMTP 将邮件程序指向 Mailer To Go(最少代码)或切换到 Mailer To Go REST API:

# 之前 — Amazon SES v2(AWS CLI)
aws sesv2 send-email \
  --from-email-address you@yourdomain.com \
  --destination ToAddresses=user@example.com \
  --content '{"Simple":{"Subject":{"Data":"Hello"},"Body":{"Html":{"Data":"Hi"}}}}'
# 之后 — Mailer To Go REST API
curl -X POST https://api.mailertogo.com/v1/send \
  -H "Authorization: Bearer $MAILERTOGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from":"you@yourdomain.com","to":"user@example.com","subject":"Hello","html":"Hi"}'

无需 IAM 用户、策略或区域端点管理 — 一个密钥和一个端点。(完整的语言示例:使用 Mailer To Go API 和 SMTP 发送电子邮件。)

第 4 步 — 导入你的压制列表(不要跳过)

在切换前导出 SES 的账户级压制列表:

aws sesv2 list-suppressed-destinations --output json > ses-suppressed.json

将这些地址加载到你的 Mailer To Go 压制列表中,这样任何在 SES 上退回或投诉过的人永远不会再被邮寄。这一个步骤保护了你在 SES 上建立的信誉。

第 5 步 — 预热并逐步切换

新的发送域名没有信誉,所以不要一次翻转所有内容 — 这对来自 SES 的情况尤为重要,如果你在一天内移动大量现有流量,对收件箱提供商来说看起来像一次突增。并行运行两个提供商并分阶段转移流量(10% → 25% → 50% → 100% 超过一周或两周),从最受欢迎的邮件(密码重置、收据)开始。在每一步监控退回和投诉率,并保持 SES 准备好接回流量,直到你完全切换。

第 6 步 — 验证,然后停用

回滚

因为切换是凭证 + DNS,回滚很快:将邮件程序的环境变量指回 SES。在重叠期间保持两个提供商都获得授权就是让那成为一行改动而不是紧急情况的关键。


初次接触子域名发送或身份验证?从为什么 Mailer To Go 从 mtg.yourdomain.com 发送和 SPF/DKIM/DMARC 设置指南开始。来自另一个提供商?参见从 SendGrid 迁移和从 Mailgun 迁移。