Mailgunから Mailer To Goへの移行方法
Mailgun から Mailer To Go への移行は、DNS と認証情報の管理された入れ替え — 再構築ではありません。本当の作業は、抑制データの移行と段階的な切り替えで、送信レピュテーションを守ることです。ここでは、正確な設定と戻せるロールアウトを含めた全プロセスを順序立てて説明します。
まだ検討中ですか? Mailgun の代替製品 の投稿が理由を説明しています。ここでは方法を説明します。
開始前: Mailgun が何をしているかインベントリする
何かを変更する前にこれらをメモします:
- Mailgun 送信ドメイン (通常は
mg.yourdomain.com) と使用中のすべての From: アドレス。 - 抑制データ — バウンス、登録解除、クレーム。これを移行することは必須です。抑制されたコンタクトに再メールを送るのは、新しいドメインの評判を台無しにする最速の方法です。
- 送信方法 — SMTP、Mailgun API (
mailgun.js、mailgun-ruby、または raw HTTP)、またはその両方。 - ルートとインバウンドルール (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: <your Mailgun SMTP password>
# 後 — 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 では mailgun.js を Nodemailer に置き換えます:
// 前 — mailgun.js
// const mg = mailgun.client({ username: "api", key: process.env.MAILGUN_API_KEY });
// await mg.messages.create(DOMAIN, { to, from, subject, html });
// 後 — Mailer To Go SMTP 経由の Nodemailer
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 でバウンスまたはオプトアウトした誰もが再度メール送信されません。これが完了するまで、本番メッセージを 1 つも送信しないでください。
ステップ 5 — ウォームアップと段階的な切り替え
新しい送信ドメインは評判なしで始まります。Mailgun と Mailer To Go を並行して実行 し、1 〜 2 週間かけてトラフィックを段階的に移行します — 10% → 25% → 50% → 100% — 信頼度の高いメール (レシート、パスワードリセット) から開始します。各増分で バウンスとクレーム率を監視し、完了するまで Mailgun がトラフィックを受け取れるようにします。
ステップ 6 — 検証し、本番環境を停止する
- テストを送信し、SPF、DKIM、DMARC すべてが PASS であることを確認します (Gmail → オリジナルを表示)。
- ウェブフックを Mailer To Go イベントハンドラーに再ポイントします。バウンス/クレーム イベントが引き続き到着することを確認します。
- Mailgun ルートをインバウンド用に使用 していた場合、そこでドメインを削除する前に同等のものを設定します。
- 100% で数日きれいに実行した後、Mailgun をキャンセルします — ただし SPF/DKIM レコードを 1 〜 2 週間ロールバック セーフティ ネットとして保持し、その後削除します。
ロールバック
切り替えは認証情報 + DNS なので、ロールバックは環境変数を Mailgun に再ポイントするだけです。重複を通じて両方のプロバイダーを認可し続けることが、ロールバックを 1 行の変更にします。
サブドメイン送信または認証に新しいですか? Mailer To Go が mtg.yourdomain.com から送信する理由 と SPF/DKIM/DMARC セットアップ ガイド を参照してください。別のプロバイダーから来ていますか? SendGrid から Mailer To Go への移行 を参照してください。