Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】How to send Listmonk newsletters through OwnMailServer

2026年10月28日に「Dev.to」が公開したITニュース「How to send Listmonk newsletters through OwnMailServer」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

オープンソースのニュースレターツールListmonkとメール送信サービスOwnMailServerを連携させ、効率的にニュースレターを送る方法を解説する。Listmonkで連絡先やコンテンツを管理し、OwnMailServerで確実なメール配信を実現。SMTP設定、送信速度調整、バウンス処理連携まで丁寧に説明する。

ITニュース解説

このニュース記事は、ニュースレターを効率的かつ安全に配信するためのシステムを構築する方法について解説している。具体的には、無料で利用できるオープンソースのニュースレター配信ツール「Listmonk(リストモンク)」と、メール送信を専門に行うサービス「OwnMailServer(オウンメールサーバー)」を連携させる手順が詳しく説明されている。システムエンジニアを目指す初心者にとって、このようなツールやサービスを組み合わせてウェブアプリケーションを構築する経験は、非常に実践的な学びとなる。

Listmonkは、購読者リストの管理、ニュースレターの作成、配信キャンペーンの管理など、ニュースレター配信に必要な基本的な機能を一通り備えている。最大の特長は、無料のオープンソースソフトウェアであること、そして「セルフホスト型」であることだ。これは、自分のサーバーにListmonkをインストールして運用するため、購読者のメールアドレスなどの個人情報が自分の管理するデータベースに安全に保管されることを意味する。外部のサービスにリストを預ける必要がないため、データのプライバシーやセキュリティの面で安心感が大きい。

一方、OwnMailServerは、Listmonkが作成したメールを実際に購読者の受信トレイに届けるための「送信」に特化したサービスだ。メールの確実な配送、配信に失敗したメール(バウンス)の処理、購読者からのスパム報告(苦情)への対応、新しいメール送信ドメインの「ウォームアップ」(送信元としての信頼性を高めるために、最初は少ない通数から始めて徐々に送信量を増やすプロセス)、そして送信元としての評判(レピュテーション)の監視といった、メール配信で最も重要で技術的に難しい部分を専門に行う。OwnMailServer自体は連絡先リストを保持したり、ニュースレターの内容を編集したりする機能は持たない。Listmonkがメールコンテンツを準備し、OwnMailServerがそれを確実にお届けするという役割分担になる。この連携により、Listmonkの柔軟性とOwnMailServerの高いメール到達率の両方を享受できる。

このシステムを構築する前に、いくつかの準備が必要となる。まず、OwnMailServerのアカウントを作成し、メールを送信するドメインの承認を受けなければならない。Listmonkから送るメールの差出人アドレス(Fromアドレス)はこの承認済みドメインのものでなければ、OwnMailServerがメールを拒否してしまう。次に、OwnMailServerの管理画面からAPIキーを取得する。このAPIキーは後でListmonkのSMTPパスワードとして使用する。さらに、Listmonkを動かすためのサーバーが必要となる。記事では、Dockerというソフトウェアをインストールした小型のVPS(仮想プライベートサーバー)で十分だと述べている。Dockerはソフトウェアを隔離された環境で簡単に実行するための技術で、初心者でも比較的扱いやすい。ListmonkにはHTTPS(暗号化された安全な通信)でアクセスするためのドメイン名も必要だ。購読解除リンクや登録フォームなどがこのドメインを参照するため、インターネットからアクセスできる状態である必要がある。最後に、正規に同意を得て登録された、質の高い購読者リストが不可欠だ。インターネットから収集したリストや購入したリストを使うと、スパムとみなされ、OwnMailServerのアカウントが停止される原因となる。

Listmonkのインストールは、Docker Composeというツールを使うことで非常に簡単に行える。docker compose up -dというコマンドを実行するだけで、Listmonk本体と、データ保存に使われるPostgreSQLデータベースの両方が自動的に起動する。インストール後、ブラウザでListmonkの管理画面にアクセスし、最初にスーパーアドミンユーザーを作成する。 セキュリティの観点から、Listmonkはリバースプロキシという仕組みを通してHTTPSで公開することが強く推奨される。NginxやCaddy、Traefikといったソフトウェアがリバースプロキシの役割を果たす。これにより、ListmonkのRoot URL(ルートURL)に設定したドメインがインターネットから安全にアクセスできるようになり、購読解除リンクなどが正しく機能するようになる。また、「From」メールアドレスも、OwnMailServerで承認されたドメインのアドレスに設定する必要がある。

次に、ListmonkとOwnMailServerをSMTP(Simple Mail Transfer Protocol)というメール送信プロトコルで接続する。Listmonkの設定画面で、メールサーバーのホスト名、ポート番号、認証方法などを指定する。ホスト名にはsmtp.ownmailserver.com、ポートには587を設定し、認証プロトコルはLOGINを選択する。ユーザー名は任意だが、パスワードにはOwnMailServerで取得したAPIキーを入力する。TLS(Transport Layer Security)という暗号化プロトコルをSTARTTLSに設定することで、メールの送信経路が暗号化され、通信が保護される。これらの設定を保存した後、テストメールを送信して接続が正しく機能するか確認する。テストが失敗した場合、エラーコードから原因を特定できる。例えば「535」はAPIキーが正しくないことを、「550」は差出人アドレスが未承認ドメインであることを示す。

Listmonkはデフォルトで高速なメール送信を試みるが、OwnMailServerにはアカウントごとに秒間10通という送信速度の制限がある。この制限を超えてメールを送信しようとすると、一時的なエラーが発生し、Listmonkのキャンペーンが停止してしまう可能性がある。これを避けるため、Listmonkのパフォーマンス設定で「Concurrency(同時実行数)」と「Message rate(メッセージレート)」を調整し、合計の送信速度がOwnMailServerの制限である秒間10通を下回るように設定する。例えば、同時実行数を2、メッセージレートを4に設定すると、合計で秒間8通の送信となり、制限内に収まる。 また、新しいOwnMailServerアカウントには、最初のうちは1日あたりの送信通数に上限(ウォームアップキャップ)が設けられている。この上限は、毎日クリーンな送信を続けることで送信元としての信頼性が高まり、徐々に増加していく仕組みだ。Listmonkにはこの上限に合わせて送信を調整する「スライディングウィンドウリミット」という機能があり、これを利用して1日あたりの送信数を制限することができる。これにより、上限を超えてメールが一時的に拒否されることを防ぎ、キャンペーンが円滑に進行するようになる。

GmailやYahooなどの大手メールプロバイダは、大量のメールを送信する「バルク送信者」に対して、ワンクリックで購読解除できる機能(RFC 8058)を提供することを義務付けている。Listmonkはこの要件に自動的に対応する機能を持っている。Listmonkの設定で「List-Unsubscribeヘッダーを含める」という項目を有効にしておけば、メールに特別なヘッダー情報が追加され、購読者がワンクリックで購読解除できるようになる。OwnMailServerは、このヘッダーが正しく機能するようにサポートし、DKIM署名(メールの信頼性を証明するための電子署名技術)でこれらのヘッダーをカバーする。これにより、GmailやYahooのインターフェースで購読解除ボタンが正しく表示されるようになる。この機能が正しく動作するためには、ListmonkのRoot URLがインターネットからアクセス可能なHTTPSアドレスである必要がある。

メールリストを健全に保つためには、バウンス(不達)や苦情(スパム報告)への対応が不可欠だ。OwnMailServerは、ハードバウンス(完全に無効なアドレス)やスパム苦情が発生した場合、そのアドレスを自動的に「抑制リスト」に追加する。このリストに登録されたアドレスにListmonkが再度メールを送信しようとしても、OwnMailServerはメールを破棄し、送信料金も発生しない。 さらに、Listmonk側のリストも自動的にクリーンアップできるよう、OwnMailServerからListmonkへバウンスや苦情の情報を連携させる仕組みが提供されている。これは「Webhook(ウェブフック)」という技術を使う。OwnMailServerがバウンスや苦情を検知すると、指定されたURLに情報を送信する。この情報を受け取り、Listmonkのバウンス処理エンドポイントに転送するための小さなスクリプトが記事に掲載されている。このスクリプトはNode.jsで書かれており、OwnMailServerからのWebhookが正規のものであるか署名を検証し、バウンスの種類に応じてListmonkに情報を送信する。これにより、Listmonkのデータベースからも無効なアドレスが削除され、リストの鮮度が保たれる。

全ての準備が整ったら、いよいよ最初のキャンペーンを送信する。Listmonkで新しいリストを作成し、CSVファイルなどを使って購読者情報をインポートする。キャンペーン作成画面でメールの内容を作成し、送信元アドレスが承認済みドメインのものであることを確認する。最初は少数の、特にエンゲージメントの高い購読者にテストメールを送り、受信トレイに正しく届くか、購読解除ボタンが表示されるかなどを確認するのが良い。 最初のキャンペーンはウォームアップの進行状況に合わせて小規模から始め、徐々に送信量を増やしていく。キャンペーンの送信後、OwnMailServerのダッシュボードではメールの配信状況、バウンス、苦情の件数を確認でき、Listmonkでは開封率、クリック率、購読解除数といった統計データを確認できる。両方のツールでクリックや開封のトラッキングを有効にすると、リンクが二重に書き換えられる可能性があるため、どちらか一方のトラッキング機能を使うべきだ。

Listmonkは多くの利点があるが、チーム内にサーバー運用に慣れたメンバーがいない場合や、非常に複雑な自動化されたメールジャーニー(複数のステップを踏むメールの送信シナリオ)を構築したい場合には、最適な選択肢ではないかもしれない。Listmonkの運用にはアップデート、データベースのバックアップ、HTTPSプロキシの設定といったサーバー管理の知識が求められるためだ。また、HTTPSでアクセス可能なドメインを用意できない場合も、購読解除リンクが機能しなくなるため、Listmonkの利用は難しい。

OwnMailServerのメール送信サービスは、従量課金制で1,000通あたり0.20ドルの料金がかかる。Listmonkは完全に無料で利用できるが、運用するサーバーの費用とOwnMailServerの送信費用が発生する形だ。 この連携システムでは、OwnMailServerはあくまでメール送信のインフラであり、Listmonkが購読者リストとキャンペーンの管理を担当する。これにより、自分のデータは自分で管理しつつ、メール配信の専門的な部分はプロのサービスに任せるという、バランスの取れた運用が可能となる。Listmonkのキャンペーンが一時停止する主な原因は、OwnMailServerの送信速度制限またはウォームアップ上限に達したことである場合が多い。これらの設定を適切に調整することで、円滑なメール配信が実現できる。購読解除はListmonkが処理し、バウンス情報はOwnMailServerが処理した後、設定によってListmonkにも連携されるため、常にクリーンなリストを維持できる。

この一連のプロセスは、システムエンジニアを目指す初心者にとって、Dockerを使ったアプリケーションのデプロイ、SMTPによる外部サービス連携、HTTPSとリバースプロキシの理解、Webhookによる非同期通信の実装、そしてサーバー運用と監視の基礎を学ぶ良い機会となるだろう。

関連コンテンツ

関連IT用語

関連ITニュース