Mailchimpを解約する|小さなビジネスのメール配信を1日で自作する具体手順

月数回しかメルマガを打たないのに、Mailchimpの月額が重いと感じたことはないだろうか。

登録者が2,000人を超えたあたりから、Mailchimpの請求は静かに膨らんでいく。月3,000円、5,000円、気づけば年間で6万円を超えている。それでも配信は月に2、3回。1通あたりのコストを計算すると、胃が痛くなる。

やめたい。でも乗り換え先が分からない。配信停止リンクの仕組みも、開封率の取り方も、全部Mailchimpに任せてきたから、自分で組める気がしない。

この記事は、そういう人のために書いた。結論から言えば、月10,000通くらいまでの配信なら、ほぼ無料で自作できる。必要な時間は1日。エンジニアでなくてもいい。順を追って手順を書いていく。

この記事の前提

想定している読者は、こんな人だ。

  • メルマガ配信は月に1〜4回程度
  • 登録者は数百人〜5,000人くらい
  • Mailchimp、Benchmark Email、配配メールなどの月額制サービスを使っている
  • 月額が地味に重いと感じている
  • でも移行や自作は面倒で後回しにしている

逆に、毎日配信している人、ステップメールを複雑に組んでいる人、マーケティングオートメーションをフル活用している人には向かない。そういう人はSaaS(月額制ソフトウェア)にお金を払う価値がある。

この記事のスタンスははっきりしている。小さく、安く、壊れにくく。派手な機能はいらない。自分で仕組みが分かっていて、止まっても自分で直せる。それがひとり事業主にとっての正解だと私は思っている。

専門用語は出てくるたびに括弧で言い換える。コードも出てくるが、コピペで動くところまで書く。読み飛ばしても手順は追えるようにした。

なぜMailchimpは高く感じるのか

月数回配信での Mailchimp vs 自作の比較
図: 月数回配信での Mailchimp vs 自作の比較

Mailchimpの料金は、登録者数で決まる。配信回数ではない。ここが個人事業主にとって一番つらいところだ。

月に2回しか打たなくても、月に20回打っても、登録者が3,000人なら同じ金額を払う。つまり、あまり配信しない人ほど1通あたりのコストが跳ね上がる。

2026年4月時点で、Mailchimpの有料プラン(Essentials)は登録者2,500人でおよそ月額75ドル、日本円でだいたい11,000円前後。年間にすると13万円を超える。

この金額で何ができるかを考えてほしい。クラウドサーバー代が1年分払える。税理士への月額顧問料の2ヶ月分になる。個人事業主にとって、13万円は決して小さくない。

一方で、月に数回の配信なら、技術的にはほぼ無料で回せる。以下で詳しく書いていく。

全体像|何をどう組み合わせるのか

自作メール配信を支える4つの構成要素
図: 自作メール配信を支える4つの構成要素

自作と言っても、ゼロから全部作るわけではない。組み合わせるのは次の4つだけだ。

  1. 配信エンジンとしてResend(リゼンド、メール配信API)
  2. 登録者リストをGoogle SheetsまたはSupabase(スーパーベース、無料のデータベース)
  3. 配信停止ページをNext.js(ネクストジェイエス、Webフレームワーク)の簡単なページ
  4. 開封率トラッキングは1ピクセル画像方式

Resendは開発者向けのメール配信サービスで、無料枠が月3,000通ある。もう一段上の有料プランでも月額20ドル(約3,000円)で月50,000通まで送れる。Mailchimpの登録者数課金とは桁が違う。

登録者が2,000人で月に4回配信する場合を計算してみる。2,000通×4回=月8,000通。Resendの有料プランに収まる。月額20ドル。Mailchimpの75ドルから55ドル下がる。年間で6万円以上の削減になる。

月に1〜2回の配信で登録者1,500人以下なら、無料枠の3,000通に収まる。つまり本当に0円で回せる。

参考にできる事例

ある個人メディア運営者の話

私が知っているある個人事業主は、登録者1,200人のニュースレターをResendで運用している。以前はMailchimpで月額30ドル弱払っていたが、移行して完全に無料枠内に収まるようになった。

移行作業に使った時間は、本人いわく丸1日。午前中にResendのアカウント作成とドメイン認証、午後に配信スクリプトとテンプレート、夜に配信停止ページと開封計測の仕組みを組んだそうだ。

一番大変だったのはドメイン認証(送信元の正当性をメールサーバーに示す仕組み)だったと言っていた。DNS(ドメイン名の住所録)の設定に慣れていないと、SPF、DKIM、DMARCという3つの設定で最初つまずく。

あるコーチングビジネスの事例

もう一人知っているのは、月1回のニュースレターだけ送っているコーチ業の人だ。登録者は3,500人。Mailchimpで月額13,000円ほど払っていた。

この人はコードが書けないので、Resendに直接移行はせず、Buttondownという海外の個人向けニュースレターサービスに移った。月額9ドル、1,400円前後。移行だけで年間14万円が浮いた計算になる。

書ける人はResend、書けない人はButtondownやKit(旧ConvertKit)のスタータープラン。この判断基準は覚えておいてほしい。

具体的な手順|1日で終わらせる流れ

1日で終わらせる移行手順
図: 1日で終わらせる移行手順

ここからは、実際に手を動かす人向けの手順だ。コードが苦手な人は、読み飛ばして「よくある失敗」に進んでもいい。

ステップ1|Resendのアカウントを作る(15分)

resend.comにアクセスしてサインアップする。クレジットカードは無料枠で使う限り不要だ。

ログインしたら、左メニューのDomainsから自分のドメインを追加する。ここで自分のメルマガの送信元になるドメイン、たとえばnews.example.comのようなサブドメインを登録する。

ステップ2|DNS(ドメイン設定)を書き換える(30分)

Resendが表示するDNSレコードを、自分が使っているドメイン管理サービス(お名前.com、Cloudflare、Route53など)に追加する。追加するのは3種類。

  • SPF(送信元IPを宣言する設定)
  • DKIM(メール本文の改ざん防止署名)
  • DMARC(上記2つの運用ポリシー)

Resendの画面に書かれている通りにコピペすれば動く。反映までは5分から長くて1時間。反映されたらResend側で緑のチェックがつく。

ここを飛ばすと、メールが届いてもGmailの迷惑メールフォルダに直行する。絶対にやってほしい。

ステップ3|登録者リストをエクスポートする(10分)

Mailchimpの管理画面から、登録者リストをCSV(表計算ファイル)で書き出す。メールアドレス、名前、登録日だけあれば十分だ。

このCSVをGoogle Sheetsに貼り付ける。これが当面の登録者データベースになる。500人くらいまではこれで全然問題ない。数千人規模になったらSupabase(無料で使えるデータベース)に移行する。

列は最低でも次の4つ。

  • email
  • name
  • subscribed_at(登録日)
  • unsubscribe_token(配信停止用のランダム文字列)

unsubscribe_tokenは、Google Sheetsの関数でランダム生成できる。=LOWER(DEC2HEX(RANDBETWEEN(0, 4294967295), 8)) をコピーして貼ると、8桁のランダム文字列が作れる。各行に1つずつ入れる。

ステップ4|HTMLメールテンプレートを作る(1時間)

メールのHTML(Webページの記述言語)は、Webページと同じ感覚で書くと必ず崩れる。GmailやOutlookは古いHTMLしか解釈してくれないからだ。

テーブルレイアウトを使う。CSSはインラインで書く。これが鉄則だ。

最小のテンプレートはこうなる。

<!DOCTYPE html>
<html>
<body style="margin:0;padding:0;background:#f5f5f5;font-family:sans-serif;">
<table width="100%" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center">
      <table width="600" cellpadding="20" cellspacing="0" style="background:#ffffff;">
        <tr><td>
          <h1 style="font-size:20px;color:#222;">今週のニュース</h1>
          <p style="font-size:16px;line-height:1.7;color:#444;">
            本文がここに入る。
          </p>
          <p style="font-size:12px;color:#999;margin-top:40px;">
            配信停止は
            <a href="https://claudelab.jp">こちら</a>
          </p>
        </td></tr>
      </table>
    </td>
  </tr>
</table>
</body>
</html>

{{token}}の部分は、送信時に各登録者のunsubscribe_tokenに置き換える。これで1人ひとりに固有の配信停止リンクを渡せる。

ステップ5|配信スクリプトを書く(1時間)

Node.js(JavaScriptの実行環境)で書く。ファイル名はsend.jsとでもしておく。

import { Resend } from 'resend';
import fs from 'fs';

const resend = new Resend(process.env.RESEND_API_KEY);
const template = fs.readFileSync('./template.html', 'utf-8');
const subscribers = JSON.parse(fs.readFileSync('./subscribers.json', 'utf-8'));

for (const user of subscribers) {
  const html = template.replace('{{token}}', user.unsubscribe_token);
  await resend.emails.send({
    from: 'news@news.example.com',
    to: user.email,
    subject: '今週のニュース',
    html,
  });
  await new Promise(r => setTimeout(r, 150));
}

最後のsetTimeoutは、1秒あたり10通以下に抑えるための待機だ。Resendの無料プランには1秒10通のレート制限がある。これを入れないと途中でエラーになる。

subscribers.jsonは、Google Sheetsからエクスポートしたリストを変換して作る。1回作れば使い回せる。

ステップ6|配信停止ページを作る(30分)

配信停止リンクを押した人が、実際に止められるページが必要だ。特定電子メール法で義務付けられている。

Next.jsで作るならapp/unsubscribe/page.tsxに短いページを置くだけでいい。URLに含まれるtokenを受け取って、データベースのフラグを更新する。Google Sheetsで管理している段階なら、受け取ったtokenをどこかのテーブルに記録して、次回配信時にそのtokenを持つ人を除外する。

ここで大事なのは、ワンクリックで止まること。フォーム入力や理由選択を挟むと、迷惑メール報告ボタンを押される確率が跳ね上がる。

ステップ7|開封率トラッキングの簡易版(30分)

開封率を測りたい場合は、1ピクセルの透明画像をメールの末尾に埋め込む手がある。

<img src="https://claudelab.jp" width="1" height="1" />

このURLにアクセスが来たら、データベースに「開封された」と記録する。API(外部と繋ぐ窓口)は10行くらいで書ける。

ただし、最近のメールクライアントは画像を自動ブロックする傾向が強い。開封率は参考程度と割り切ってほしい。Mailchimpでも精度は落ちているので、この自作版が特別に劣っているわけではない。

ステップ8|テスト配信(30分)

本番の前に、必ず自分宛てに3つのアドレスでテストする。Gmail、iCloudメール、もしあれば会社のOutlook。

  • 迷惑メールに入っていないか
  • 画像が表示されるか
  • 配信停止リンクが動くか
  • スマホで開いて崩れていないか

ここを丁寧にやるだけで、本番事故の9割は防げる。

よくある失敗・落とし穴

1つ目|いきなり全員に送る

最初のテスト配信で2,000人に送って、数十件の迷惑メール報告をもらい、以降Gmailに届かなくなる。これが一番多い事故だ。

最初の配信は、必ず自分と数人の知人だけに送る。次に50人くらいに送る。ここで問題がなければ全体配信に移る。段階を踏んでほしい。

2つ目|ドメイン認証を省略する

SPF、DKIM、DMARCの設定を飛ばすと、Gmailは高確率で迷惑メール扱いする。2024年頃からGmailとYahooがこの3点セットを事実上必須化した。

「とりあえず動いたからいいや」で放置すると、半年後に配信停止者が急増していて気づく。必ず最初に整えてほしい。

3つ目|登録者リストのバックアップを取り忘れる

Google Sheets1枚に全部入れていると、誤って行削除しただけで数千人の情報が消える。Google Sheetsのバージョン履歴はあるが、過信しない方がいい。

週1回でいいので、別のシートかローカルのCSVにコピーを取る習慣をつける。

4つ目|配信停止リンクを小さく隠す

小さく薄い色で配信停止リンクを置く人がいるが、これは逆効果だ。見つからない人は迷惑メール報告を押す。迷惑メール報告は配信停止の何倍もダメージがある。

堂々と、メールの末尾に普通の大きさで置いてほしい。

5つ目|Mailchimpを即解約する

移行して1回配信したくらいで、Mailchimpを解約してはいけない。少なくとも2、3ヶ月は並行して動かす。片方が壊れてもすぐ戻せる状態を保つ。

月に1万円払う価値は十分にある保険だ。完全に安定してから解約する。

6つ目|Resendの有料プラン切り替え忘れ

無料枠は月3,000通。これを超えると配信が止まる。登録者が増えて気づかず、ある日突然メルマガが届かなくなる。

月初に配信数の見通しを立てて、3,000通を超えそうなら先に20ドルのプランに上げておく。Resendの管理画面から1クリックで切り替わる。

明日からやる3つのこと

  1. 今のMailchimpの年間コストを計算する。月額×12で出す。これが移行のモチベーションになる。5万円を超えているなら、1日投資する価値は十分にある。

  2. resend.comでアカウントを作って、自分宛てに1通テストメールを送ってみる。ここまでなら15分で終わる。「自分でもできる」という感覚を掴んでほしい。

  3. 次の週末の半日を、移行作業のためにカレンダーで予約する。やると決めた日を先に押さえないと、永遠に後回しになる。私自身がそうだった。

月に13万円、年間で10万円以上の固定費を削れる選択肢を、ひとり事業主が使わない手はない。浮いたお金で、もっと自分の事業に効く投資ができる。

道具は小さく、安く、自分で直せる状態に。これがひとりで事業を回す人の生存戦略だと、私は信じている。