AI

OSSメルマガ比較:Listmonk vs Mailtrain vs Mautic でメルマガを配信する

オープンソースラボ編集部2026年6月14日

OSSメルマガ比較:Listmonk vs Mailtrain vs Mautic でメルマガを配信する

Mailchimp($13/月〜)・Klaviyo($20/月〜)などの有料SaaSメールマーケティングツールに依存せず、セルフホストで大量メールを自動配信・購読管理・開封率追跡できるOSSメールマーケティングツールが進化しています。Listmonk(Go製・高速・シンプル・10万件/時間配信)・Mailtrain(Node.js製・テンプレートエンジン充実)・Mautic(PHP製・マーケティングオートメーション特化)の3つが2026年のOSSメールマーケティング主要選択肢です。

OSSメールマーケティングを使う理由

  • コスト削減: Mailchimp 1万人プラン($100/月)→Listmonk+SES($1/月)で99%削減
  • 購読者数無制限: 有料SaaSの人数上限なしに自社サーバーで管理
  • データ主権: 購読者・メールアドレスリストを自社データベースに保持してGDPR対応
  • カスタムドメイン: 完全自社ドメインのメール送信でブランディング強化

主要ツールの概要

Listmonk

2020年公開、Go製のOSSです。GitHubスター15k+。Go製で超高速・1サーバーで毎時10万件以上のメール配信が可能なOSSニュースレターツールで、シングルバイナリで動作しPostgreSQLだけで完結します。購読者一覧・テンプレート管理・キャンペーン作成・開封率/クリック率トラッキングがシンプルなWeb UIで提供されます。

# docker-compose.yml: Listmonk
version: "3.8"
services:
  listmonk:
    image: listmonk/listmonk:latest
    restart: unless-stopped
    ports:
      - "9000:9000"
    environment:
      LISTMONK_app__address: 0.0.0.0:9000
      LISTMONK_app__admin_username: admin
      LISTMONK_app__admin_password: ${ADMIN_PASS}
      LISTMONK_db__host: listmonk-db
      LISTMONK_db__port: 5432
      LISTMONK_db__user: listmonk
      LISTMONK_db__password: ${DB_PASS}
      LISTMONK_db__database: listmonk
    depends_on: [listmonk-db]
    command: [./listmonk, --static-dir, /listmonk/static]

  listmonk-db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: listmonk
      POSTGRES_USER: listmonk
      POSTGRES_PASSWORD: ${DB_PASS}
    volumes:
      - listmonk_db:/var/lib/postgresql/data

volumes:
  listmonk_db:
# Python: Listmonk API でメルマガ購読者管理・キャンペーン作成を自動化
import requests

LISTMONK_URL = 'http://localhost:9000'
AUTH = ('admin', 'password')

def add_subscriber(email: str, name: str, list_ids: list = None,
                   attribs: dict = None) -> dict:
    '''Listmonkに購読者を追加(Webサイトの登録フォームから自動登録)'''
    resp = requests.post(
        f'{LISTMONK_URL}/api/subscribers',
        auth=AUTH,
        json={
            'email': email,
            'name': name,
            'status': 'enabled',
            'lists': list_ids or [1],
            'attribs': attribs or {},
            'preconfirm_subscriptions': True,
        },
    )
    return resp.json()

def create_campaign(name: str, subject: str, body: str, list_ids: list,
                    send_at: str = None) -> dict:
    '''Listmonkでメールキャンペーンを作成・スケジュール送信'''
    resp = requests.post(
        f'{LISTMONK_URL}/api/campaigns',
        auth=AUTH,
        json={
            'name': name,
            'subject': subject,
            'lists': list_ids,
            'type': 'regular',
            'content_type': 'richtext',
            'body': body,
            'send_at': send_at,  # ISO8601: 2026-06-20T09:00:00+09:00
        },
    )
    campaign = resp.json()['data']
    # キャンペーンを開始(スケジュールなしなら即時送信)
    if not send_at:
        requests.put(
            f'{LISTMONK_URL}/api/campaigns/{campaign["id"]}/status',
            auth=AUTH,
            json={'status': 'running'},
        )
    return campaign

def get_campaign_stats(campaign_id: int) -> dict:
    '''キャンペーンの開封率・クリック率・直帰率を取得'''
    resp = requests.get(f'{LISTMONK_URL}/api/campaigns/{campaign_id}', auth=AUTH)
    data = resp.json()['data']
    stats = data.get('stats', {})
    total = data['send_count'] or 1
    return {
        'sent': data['send_count'],
        'open_rate': round(stats.get('unique_opens', 0) / total * 100, 1),
        'click_rate': round(stats.get('unique_clicks', 0) / total * 100, 1),
        'bounce_rate': round(stats.get('bounces', 0) / total * 100, 1),
    }

Mailtrain

2016年公開、Node.js製のOSSです。GitHubスター14k+。豊富なテンプレートエンジン(MJML・Mosaico・GrapeJS)とセグメンテーション機能を持つOSSメールマーケティングツールで、Mailchimp的なドラッグ&ドロップエディタでHTMLメールを作成できます。

# docker-compose.yml: Mailtrain v2
version: "3.8"
services:
  mailtrain:
    image: mailtrain/mailtrain:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      URL_BASE_TRUSTED: https://newsletter.example.com
      URL_BASE_SANDBOX: https://newsletter.example.com
      MYSQL_HOST: mailtrain-db
      MYSQL_DATABASE: mailtrain
      MYSQL_USER: mailtrain
      MYSQL_PASSWORD: ${DB_PASS}
      WITH_REDIS: "true"
      REDIS_HOST: mailtrain-redis
    depends_on: [mailtrain-db, mailtrain-redis]

  mailtrain-db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASS}
      MYSQL_DATABASE: mailtrain
      MYSQL_USER: mailtrain
      MYSQL_PASSWORD: ${DB_PASS}
    volumes:
      - mailtrain_db:/var/lib/mysql

  mailtrain-redis:
    image: redis:7-alpine

volumes:
  mailtrain_db:

Mautic

2014年公開、PHP製のOSSです。GitHubスター7k+。マーケティングオートメーション(シナリオ配信・リードスコアリング・ランディングページ作成)に特化したOSSで、メール・SMS・ソーシャル・Web通知を統合したマルチチャネルマーケティングをノーコードで設定できます。

# docker-compose.yml: Mautic 5
version: "3.8"
services:
  mautic:
    image: mautic/mautic:5-apache
    restart: unless-stopped
    ports:
      - "80:80"
    environment:
      MAUTIC_DB_HOST: mautic-db
      MAUTIC_DB_NAME: mautic
      MAUTIC_DB_USER: mautic
      MAUTIC_DB_PASSWORD: ${DB_PASS}
      MAUTIC_TRUSTED_HOSTS__0: newsletter.example.com
    depends_on: [mautic-db]
    volumes:
      - mautic_html:/var/www/html

  mautic-db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASS}
      MYSQL_DATABASE: mautic
      MYSQL_USER: mautic
      MYSQL_PASSWORD: ${DB_PASS}
    volumes:
      - mautic_db:/var/lib/mysql

volumes:
  mautic_html:
  mautic_db:

機能比較表

比較項目ListmonkMailtrainMautic
配信速度✅ Go・最高速
ドラッグ&ドロップ
マーケティングオートメーション
セットアップ難易度✅ 最易
GitHub Stars15k+14k+7k+

メールマーケティングツールはマーケティングカテゴリ/categories/marketingのWebアナリティクス(Plausible/Umami)と組み合わせてメール→ランディングページ→コンバージョンの全ファネルをOSSで完結します。その他カテゴリ/categories/miscのCRM(SuiteCRM/Twenty)とWebhookで連携してCRMのリードに自動的にメールシーケンスを送信するリードナーチャリングフローを構築します。

FAQ

Q. ListmonkをAWS SES・Postmark・SendGridと連携して大量メールを送信するには?

A. ListmonkのSMTP設定でAWS SES・Postmark・SendGridのSMTPエンドポイントを指定して外部メール配信サービスを利用します。設定: Listmonk Console→Settings→SMTP。AWS SES設定: Host: email-smtp.ap-northeast-1.amazonaws.comPort: 587Username: SES SMTP認証情報Password: SES SMTPパスワードTLS: STARTTLS。SendGrid設定: Host: smtp.sendgrid.netPort: 587Username: apikeyPassword: SG.xxxxxxxxxx(APIキー)。Postmark: Host: smtp.postmarkapp.comPort: 587Username/Password: Postmark ServerAPIトークン。配信速度: Settings→Performance→Max. concurrent workersを10〜50に設定→並列SMTP接続でSESの1秒14通制限(ap-northeast-1の初期値)に対応→スロットリングをListmonkが自動管理。

Q. Mauticでウェルカムメールシーケンス(ドリップキャンペーン)を設定するには?

A. MauticのCampaign Builder(ノーコード)で「登録後24時間→72時間→7日後」のシーケンスを設定します。設定: ①Campaigns→New Campaign②Campaign Source: Formから「お問い合わせフォーム」を選択③Decision Points: Register on form "contact-form"(トリガー)④Email Action: Send email: ウェルカムメール(登録直後)⑤Wait Action: 24時間→Send email: 使い方ガイド→Wait 2日→Send email: 事例紹介→Wait 4日→Send email: 限定オファー。条件分岐: 「メールを開封した」→「ケーススタディを送信」、「未開封」→「件名変えてリマインダー」のA/Bテスト自動化。リードスコア: メール開封+2点・リンククリック+5点→合計20点→セールスチームに通知するスコアリング自動化。

Q. Listmonkのダブルオプトイン設定でGDPR準拠の購読登録を実装するには?

A. Listmonkのサブスクリプションリストでダブルオプトイン(確認メール)を有効化してGDPR準拠の同意記録を実装します。設定: ①Listmonk Console→Lists→当該リストの編集②Opt-in type: Double opt-inに設定③確認メールテンプレート: Settings→Messenger Templates→optinテンプレートをカスタマイズ(ブランドカラー・会社情報を追記)。フロントエンド実装: Webフォーム→POST /api/public/subscription→購読者に確認メール自動送信→リンクをクリックするまでstatus: unconfirmed→クリック後enabledに変更。GDPR記録: Listmonkは購読日時・確認日時・IPアドレスをDBに記録→GDPRの同意記録要件を自動的に満たす→GET /api/subscribers/{id}で特定購読者の記録をエクスポート(忘れられる権利対応)。

Q. Listmonk・Mailtrain・Mauticのどれを選ぶべきですか?

A. シンプルなニュースレター・高速配信・最小設定ならListmonkドラッグ&ドロップメールエディタ・MJML対応・デザイン重視ならMailtrainマーケティングオートメーション・ドリップシーケンス・リードスコアリング・マルチチャネルならMauticが向いています。Listmonk優位: ①Go製シングルバイナリ→PostgreSQLのみで動作→最小インフラ②毎時10万件以上の高速配信→メルマガメインで利用するスタートアップ・ブロガーに最適③シンプルなAPI→Webフォームからの自動登録・Webhookとの連携が容易④開封率・クリック率の基本統計が内蔵。Mailtrain優位: ①MJMLエディタ→レスポンシブHTMLメールをブロックエディタで作成②セグメンテーション→購読者属性(国・タグ・カスタムフィールド)でターゲット絞り込み③A/Bテスト機能→件名・差出人名・本文の変種テスト。Mautic優位: ①キャンペーンビルダー(ノーコード)→「3日後に未開封なら件名変えて再送」を自動化②LPビルダー→メール+ランディングページをMauticで一元管理③CRM統合→SalesforceやSuiteCRMとのデータ同期④チャンネル統合→メール・SMS・プッシュ通知・ソーシャルを1つの自動化フローで管理。

まとめ

ユースケース推奨ツール
シンプル・高速配信・ニュースレターListmonk
デザイン重視・HTMLメールエディタMailtrain
マーケティングオートメーション・ドリップMautic

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。