DEV Community

スシロー
スシロー

Posted on

【2026】Mailchimp 代替のトランザクションメールAPI:料金・移行コストで選ぶ

結論(おすすめ1つ)

Resend に乗り換えるべき。

React Email との統合が標準で、TypeScript 型定義がファーストクラス対応であるため、現代的なスタック(Next.js / Node.js)と最も摩擦なく繋がる。SMTP リレーではなく HTTP API 単一エンドポイントで完結するため、Mailchimp の複雑な設定を捨てて 30 分以内に本番送信まで到達できた。DKIM・SPF の DNS 設定も管理画面で自動生成されるので、メール到達率の確保を自分でゼロから調べる必要がない。


比較表(料金/無料枠/移行コスト/対応言語)

ツール 無料枠 料金 移行コスト 主な対応言語
Resend あり(公式の料金ページで要確認) 従量課金+月額プラン 低:HTTP API のみ Node / Python / Go / Ruby / PHP / Elixir など公式 SDK 多数
Postmark あり(テスト用クレジット) 送信数従量課金(公式要確認) 低〜中:SMTP と API 両対応 Node / PHP / Ruby / Python / .NET / Go
SendGrid あり(公式の料金ページで要確認) 従量課金+月額プラン 中:ライブラリが旧世代気味 主要言語ほぼ網羅
Mailgun 試用枠あり(公式要確認) 従量課金 中:ドメイン認証設定が煩雑 Node / Python / PHP / Ruby / Java
AWS SES 無料枠あり(EC2 経由に条件) 最安水準(公式要確認) 高:IAM / バウンス処理を自前実装 AWS SDK 全対応

Mailchimp Transactional(旧 Mandrill)は Mailchimp 本体との強制バンドルが最大の痛点だった。上記の代替はいずれも単独契約できる。


移行手順

ここでは Resend への移行を例示する。

Step 1: SDK インストール

npm install resend
# Python の場合
pip install resend
Enter fullscreen mode Exit fullscreen mode

Step 2: API キー取得と環境変数設定

Resend ダッシュボード → API Keys → Create API Key でキーを発行する。

# .env
RESEND_API_KEY=re_xxxxxxxxxxxxxxxxxxxx
Enter fullscreen mode Exit fullscreen mode

Step 3: 送信ドメインの DNS 設定

ダッシュボード → Domains → Add Domain でドメインを追加すると、以下の形式のレコードが表示される。これを DNS プロバイダへ登録する。

TXT  resend._domainkey.example.com  "v=DKIM1; k=rsa; p=..."
TXT  example.com                    "v=spf1 include:amazonses.com ~all"
Enter fullscreen mode Exit fullscreen mode

検証完了まで数分〜数時間かかる。

Step 4: 最小送信コード(Node.js)

import { Resend } from 'resend';

const resend = new Resend(process.env.RESEND_API_KEY);

async function sendTransactional(to: string, orderId: string) {
  const { data, error } = await resend.emails.send({
    from: 'no-reply@example.com',
    to,
    subject: `注文確認 #${orderId}`,
    html: `<p>ご注文ありがとうございます。注文番号: <strong>${orderId}</strong></p>`,
  });

  if (error) throw new Error(error.message);
  return data;
}
Enter fullscreen mode Exit fullscreen mode

Step 5: Mailchimp Transactional からの切り替え

旧コードで mailchimp_transactional.ApiClient を呼んでいた箇所を上記関数に置換する。テンプレート ID による呼び出しを使っていた場合は、React Email または通常の HTML 文字列テンプレートへ変換する。

# 旧コードの参照箇所を一括確認
grep -r "mailchimp_transactional\|mandrill" src/
Enter fullscreen mode Exit fullscreen mode

Step 6: バウンス・Webhook 設定

ダッシュボード → Webhooks → Add Endpoint でバウンスや配信失敗イベントを自前 API エンドポイントへ転送するよう設定する。Mailchimp 側の Webhook 設定は削除してよい。


向き不向き

向いているチーム・ケース

  • TypeScript / Node.js または Python ファーストのスタックで開発している小〜中規模チーム
  • React Email でメールテンプレートをコンポーネント化したい場合(Resend が最適)
  • Mailchimp の月額コストを削りたい、かつトランザクション送信に特化したい場合
  • SES を使いたいが IAM 管理やバウンス処理の自前実装工数を払いたくない場合(Resend/Postmark が SES 上で動く構成を取ることもある)

避けるべきケース・注意点

  • 大量の既存 Mandrill テンプレート(Handlebars 形式)をそのまま移植したい場合:変換工数がかかる。SendGrid の Dynamic Templates の方が構文が近い
  • 送信数が月数百万通を超える規模で単価を極限まで下げたい場合:AWS SES の直接利用が費用面では有利だが、バウンス処理・レピュテーション管理を自前で担う覚悟が必要
  • .NET / Java がメインで公式 SDK の成熟度を重視する場合:SendGrid または Postmark の方が実績が長い
  • SMTP リレーを既存インフラ(レガシー PHP など)から変えられない場合:Resend より Postmark や Mailgun の SMTP エンドポイントを使う方が移行コストが低い

Top comments (0)