← Blog

如何从Mailgun迁移到Mailer To Go

指南 迁移,SMTP,可交付性,Mailgun July 9, 2026 by 邮件转发团队
从Mailgun迁移事务性电子邮件到Mailer To Go的分步指南:发送域设置、SPF/DKIM/DMARC、交换SMTP/API凭据、导入退回/取消订阅/投诉,以及具有回滚的安全并行运行切换。

从 Mailgun 迁移到 Mailer To Go 是 DNS 和凭据的受控交换 — 而不是重写。真正的工作是跨越传递你的抑制数据,并逐步切换,以便你的发送声誉在迁移中保持完整。以下是整个过程的完整顺序,包含确切配置和可逆的推出。

还在比较选项?Mailgun 替代品文章涵盖了原因。这是方法。

开始前:清点 Mailgun 为你做的事

在你触及任何东西之前,记下这些:

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

在 mailertogo.com 注册并添加一个发送子域。如果你已经在 Mailgun 的 mg.yourdomain.com 上,迁移到 mtg.yourdomain.com 保持了与根域的相同干净分离 — 并让我们在你委派时管理其 DNS。见为什么 Mailer To Go 从 mtg.yourdomain.com 发送。

第 2 步 — 认证(SPF、DKIM、DMARC)

从你的仪表板发布 SPF、DKIM 和 DMARC 记录。你已经为 Mailgun 做了等价的事,所以这会感到熟悉 — 区别在于记录值。在重叠期间,在域上保持两个提供商都授权。实际记录和 dig 验证:端到端电子邮件认证。

第 3 步 — 交换你的凭据

SMTP。 Mailgun 的配置使用 smtp.mailgun.org 和 postmaster@mg.yourdomain.com 风格的用户名。重新指向相同的邮件程序:

# 之前 — Mailgun
host: smtp.mailgun.org   port: 587
username: postmaster@mg.yourdomain.com
password: <你的 Mailgun SMTP 密码>

# 之后 — Mailer To Go
host: smtp.<region>.mailertogo.net   port: 587
username: <MAILERTOGO_SMTP_USER>
password: <MAILERTOGO_SMTP_PASSWORD>

在 Rails 中这是环境变化,而不是代码变化:

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

API。 如果你调用 Mailgun 的 API,最低努力的移动是将该传输切换到 SMTP。在 Node 中,用 Nodemailer 替换 mailgun.js:

// 之前 — mailgun.js
// const mg = mailgun.client({ username: "api", key: process.env.MAILGUN_API_KEY });
// await mg.messages.create(DOMAIN, { to, from, subject, html });

// 之后 — Nodemailer over Mailer To Go SMTP
const nodemailer = require("nodemailer");
const transport = nodemailer.createTransport({
  host: process.env.MAILERTOGO_SMTP_HOST,
  port: 587,
  auth: { user: process.env.MAILERTOGO_SMTP_USER, pass: process.env.MAILERTOGO_SMTP_PASSWORD },
});
await transport.sendMail({ to, from, subject, html });

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

在切换前从 Mailgun 导出退回、取消订阅和投诉 — 从仪表板或通过 API:

curl -s --user "api:$MAILGUN_API_KEY" \
  https://api.mailgun.net/v3/mg.yourdomain.com/bounces > bounces.json
curl -s --user "api:$MAILGUN_API_KEY" \
  https://api.mailgun.net/v3/mg.yourdomain.com/unsubscribes > unsubscribes.json
curl -s --user "api:$MAILGUN_API_KEY" \
  https://api.mailgun.net/v3/mg.yourdomain.com/complaints > complaints.json

将这些地址加载到你的 Mailer To Go 抑制列表中,以便没有人在 Mailgun 上退回或选择退出的人会再次被邮寄。在这样做之前,不要发送单个生产消息。

第 5 步 — 预热和逐步切换

新的发送域以没有声誉开始。并行运行 Mailgun 和 Mailer To Go 并分阶段移动流量 — 10% → 25% → 50% → 100% 在一两周内 — 从高信任邮件开始(收据、密码重置)。在每个增量处监控退回和投诉率,直到完成时保持 Mailgun 能够处理流量。

第 6 步 — 验证,然后停用

回滚

切换是凭据 + DNS,所以回滚只是在 Mailgun 处重新指向你的环境变量。在重叠期间保持两个提供商都授权是使回滚成为单行更改的原因。


初次使用子域发送或认证?见为什么 Mailer To Go 从 mtg.yourdomain.com 发送和 SPF/DKIM/DMARC 设置指南。来自不同的提供商?见从 SendGrid 迁移到 Mailer To Go。