SendGridからMailer To Goへの移行方法
SendGridからMailer To Goへのトランザクショナルメール移行は、主にDNSと認証情報の入れ替え — 難しいのはコードではなく、送信評判を失わずに、またすでにバウンスまたは登録解除された人に再度メールを送らずに切り替えることです。このガイドでは、正確な設定変更と安全で可逆的なロールアウトを含めて、全体的な移行手順を説明します。
まだ決めかねている場合は、SendGrid代替案の比較でその理由をカバーしています。このガイドはその方法です。
開始前: SendGridが何をしているのかを棚卸しする
移行が失敗するのは、見えないものが置き去りにされるからです。以下を記載してください:
- 送信ドメインとFromアドレス — 今日送信元として使用するもの。
- 抑制データ — バウンス、ブロック、スパムレポート、登録解除。これが必ず移行しなければならないもの。抑制されたアドレスに再度メール送信すると、初日から評判が低下します。
- 送信方法 — SMTP、Web API(
@sendgrid/mail、sendgrid-ruby、Python用sendgrid)、またはその両方。 - テンプレート — SendGridに保存されたもの(動的テンプレート)とアプリで処理されたもの。
- イベントウェブフック(配信/開封/クリック/バウンス)と、それを使用するすべてのダウンストリーム。
- 大雑把な日次/ピーク量 — ウォーミングを計画するため。
ステップ1 — Mailer To Goの送信ドメインを作成する
mailertogo.comにサインアップし、ルートドメインではなく送信サブドメインを追加してください。mtg.yourdomain.comをお勧めします。これは評判を隔離し、委譲する場合、当社がDNSを管理できます。理由と設定についてはMailer To Goがmtg.yourdomain.comから送信する理由を参照してください。
ステップ2 — 認証(SPF、DKIM、DMARC)
ダッシュボードに表示されたSPF、DKIM、DMARC記録を送信ドメイン用に公開します。SendGrid用にDMARCをすでに実行している場合は、先行しています — 重複中はMailer To Goを認可済みソースとして追加し、SendGridが終了したら厳しくするだけです。実際のレコードとdig検証を含めた完全なウォークスルー: メール認証、エンドツーエンド。
ステップ3 — 認証情報を交換する
SMTP。 SendGridの典型的な設定は、文字通りのユーザー名apikeyです。同じメーラーをMailer To Goにポイントします:
# Before — SendGrid
host: smtp.sendgrid.net port: 587
username: apikey
password: SG.xxxxxxxx (あなたのSendGrid APIキー)
# After — 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。 SendGrid SDKを使用する場合、トランスポートをSMTPに切り替えます(最小コードパス)、またはMailer To Go APIに切り替えます。NodeでNodemailer経由のMailer To Go SMTPに@sendgrid/mailから移行:
// Before — @sendgrid/mail
// sgMail.setApiKey(process.env.SENDGRID_API_KEY);
// await sgMail.send({ to, from, subject, html });
// After — 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 — 抑制リストをインポートする(スキップしない)
切り替え前にSendGridから抑制をエクスポート — ダッシュボードのSuppressions → Global Unsubscribes / Bounces / Spam Reports / Blocks、またはAPI経由:
curl -s -H "Authorization: Bearer $SENDGRID_API_KEY" \
https://api.sendgrid.com/v3/suppression/bounces > bounces.json
curl -s -H "Authorization: Bearer $SENDGRID_API_KEY" \
https://api.sendgrid.com/v3/suppression/unsubscribes > unsubscribes.json
それらのアドレスをMailer To Go抑制リストに読み込み、ハードバウンスまたは登録解除された連絡先が二度とメール送信されないようにします。このステップだけで、SendGridで数年間かけて構築した評判が保護されます。
ステップ5 — ウォーミングアップと段階的な切り替え
新しい送信ドメインはまだ評判がないため、トラフィックの100%を一度に切り替えないでください。両方のプロバイダーを並行実行し、トラフィックを段階的にシフト — 例えば10% → 25% → 50% → 100%を1週間または2週間かけて — 最も関心の高い、最もリスクの低いメール(パスワードリセット、レシート)から始めます。各ステップでバウンスとコンプレイント率を監視します。完全に切り替わるまで、SendGridを稼働させたままにしてトラフィックを戻すことができるようにします。
ステップ6 — 検証してから廃止する
- テストメールを送信し、SPF、DKIM、DMARC全てPASSを確認(Gmail → Show original)。
- イベントウェブフックをアプリのMailer To Goハンドラーに再ポイントし、バウンス/コンプレイントイベントが流れ続けることを確認します。
- トラフィックの100%がMailer To Goを通じてクリーンに実行されてから数日経ったら、SendGridをダウングレードまたはキャンセル — ただし、念のためロールバックが必要な場合に備えて、1週間または2週間、SendGridのSPF/DKIMレコードを配置したままにした後、削除してください。
ロールバック
切り替えが認証情報+ DNSであるため、ロールバックは高速です: メーラーの環境変数をSendGridに戻すようにポイントします。重複中両方のプロバイダーが認証されたままにすることが、緊急時の代わりにワンライン変更にします。
サブドメインから送信するまたはメール認証に新しい? Mailer To Goがmtg.yourdomain.comから送信する理由とSPF/DKIM/DMARC設定ガイドから始めてください。別のプロバイダーから移行中? MailgunからMailer To Goへの移行を参照してください。