オープンソースのメーリングマガジンシステムphpListをDockerで立ち上げ、メール配信を行う

phpListはオープンソースのメールマーケティングシステムになります。オープンソースなので自社ワークフローに合わせてカスタマイズしたり、社内システムと連携することもできます。

システム的にはPHPとMySQLというスタンダードな組み合わせで作られていますが、セットアップに多少なりとも手間をかけたくない方向けに、Dockerで利用できるようにしてみました。こちらを使えば、手軽にphpListが開始できます。

必要なもの

まずDocker Desktopが最低限必要です。Docker Composeも必要ですが、WindowsやmacOSであればDockerをインストールすれば自動的にインストールされます。

f:id:moongift:20190924104825p:plain
Docker Desktop

Docker Desktop for Mac and Windows | Docker

Linuxであれば下記のドキュメントを参考にインストールを行います。

Docker Compose のインストール

Docker phpListのダウンロード

Dockerで使えるphpListをこちらに用意しています。Gitクローン、またはZipファイルでダウンロードしてください。

goofmint/phpList-docker

設定の編集

まず .env-dist ファイルを .env とリネームしてください。そして設定を編集します。特に下記項目を忘れずに編集してください。Customers Mail Cloudの管理画面でSMTPサーバの設定、APIユーザの作成を行って、その内容を入力してください。

# For Customers Mail Cloud
SERVER=SERVER_HOST:PORT
API_USER=API_USER
API_KEY=API_KEY

例えば次のようになります。

# For Customers Mail Cloud
SERVER=sandbox.smtps.jp:10025
API_USER=api@smtps.jp
API_KEY=apikey

さらに postflix/main.cf を開いて、リレーサーバのアドレスを編集してください。デフォルトではサンドボックスのアドレスになっています。

relayhost = sandbox.smtps.jp:10025

このアドレス(sandbox.smtps.jp:10025)を上記の SERVER として設定した値と同じものにします。

Dockerのビルド

まずDockerのビルドを行います。

docker-compose build

phpListの立ち上げ

これで準備ができましたので、phpListを立ち上げます。

docker-compose up

初期設定

phpListが立ち上がったら http://localhost:8000/lists/admin/ にアクセスします。設定でポート番号、ホスト名を変えている場合には読み替えてください。初期パスワードは adminSomeRandomPassword ですが、これも設定で変更している場合には読み替えてください。

f:id:moongift:20190924104901p:plain
最初のログイン

最初にアクセスした際に、バージョンアップが必要とメッセージが出ます。データベースのバージョンアップを行ってください。

これでphpListが使い始められます。

変更点について

phpListは公式でDocker用のファイルをリリースしています。

phpList/phplist-docker: Dockerised version of phpList

しかし、このリポジトリのものはメール送信設定ができないようになっていたり、管理画面のローカライズができないようになっています。それらを有効にしたいのが筆者のバージョンになります。

常にphpListの最新版を取得しているので、phpListのバージョンが上がったタイミングで動作しなくなる可能性があります。ご注意ください。

メール配信について

phpListの使い方については、こちらの記事にて紹介しています。phpListの日本語ローカライズは完璧ではなく、英語がところどころに残っていますのでご注意ください。

まとめ

phpListはとても優秀で便利なソフトウェアですが、メールサーバの設定などは非常に面倒です。間違った設定をしていると購読者のメールボックスに正しく届かず、効果的ではありません。Dockerを使うことで設定済みの状態ですぐに利用できます。また、Customers Mail Cloudを使えば大量のメール配信であっても問題なく対応できます。ぜひご利用ください。

クラウドからのメール送信を簡単に。確実に。| Customers Mail Cloud