phpListを無料のステップメール配信ソフト化する

これまでの設定では即時発行のメールマガジンとして使ってきました。これはこれで便利なのですが、最近はステップメールの需要も高くなってきています。そこで今回はphpListをステップメール化することにします。

ステップメールとは

そもそもステップメールとはどんなものなのでしょうか。

購入してくれたお客さんにお礼のメールを出したり、お買い得商品のご案内を送ったり、関連商品をお勧めしたり、そういう場面は多いですよね。

まず1日目にお礼のメール、2日目に使い方のご案内、3日目に関連商品のお勧め、・・・と順番にメールを送ります。これが1人2人なら手作業でも苦にはなりませんが、数百人ともなると大変な作業です。

そこで、これらの一連の流れを自動化したくなりませんか?それがステップメールです。ステップメールでは決められた順番に、決められたメールの内容を自動的に配信スケジュールに沿ってメールマガジンを送信してくれるのです。

phpListではどのようにステップメールを実現しているのか

ステップメールというのは日本語独自の呼び方です。英語では Auto Responder と言います。Step Mail とかでは検索に引っかかりません。

phpListではステップメール機能はすでにプラグインとして用意されています。ですので、プラグインをインストールすればすぐにでもステップメールが利用可能になっています。

ステップメールのインストール

まず、管理画面からメニューの「Config」→「plugins」を選択します。

ステップメールプラグイン Auto Responder の詳しい説明については、公式のページを参照下さい(英語ですが)。

プラグインのインストール画面になりました。ここで、「Plugin package URL」の欄に、

https://github.com/bramley/phplist-plugin-autoresponder/archive/master.zip

と入力します。次に「Install plugin」ボタンをクリックします。URLが正しく入力されれば次の画面が表示されます。

「続ける」ボタンをクリックします。

インストールされました。しかしオレンジのアイコンが付いています。これはAuto Responderがまだ有効になっていないことを示しています。というのも、Auto Responder plugin では the Common Plugin v3 を利用するので、これが入っていないためです。これもインストールしましょう。

Common Plugin v3 のインストール

Auto Responder のインストールが完了した画面から、「Plugin package URL」に次のURLを入力します。

https://github.com/bramley/phplist-plugin-common/archive/master.zip

Auto Respoder をインストールした場合と同じように、入力し終えたら「Install plugin」ボタンをクリックします。

この画面になったら「続ける」ボタンをクリックします。

Common Plugin v3 もオレンジのアイコンが表示されて有効になっていません。「Enable」をクリックして有効化します。

無事に Common Plugin v3 がインストールされました。

Auto Responder を有効化する

Common Plugin v3 が有効化されたのを受けて、Auto Responder が有効化できるようになっています。

Auto Responderへ戻って「Enable」ボタンをクリックして下さい。

オレンジのアイコンが緑になればインストール完了です。

以上でphpListのステップメール化が完了しました。

phpList:キュー処理をバックグラウンドで行う

前回もお話したように、配信開始したメールマガジンは一旦キューと呼ばれる場所に格納されます。そしてキュー処理をするには、ブラウザを起ち上げておかなければなりませんでした。

これはメールマガジンに登録している読者が10人程度なら数秒で終わるので問題ありませんが、読者が数百人ともなると何時間もブラウザを開きっぱなしになってしまいます。それでは不便ですよね。

今回はこのキュー処理を自動的にバックグラウンドで行なってしまおうという設定を行います。レンタルサーバによってはできないところもありますので、サーバ選びは慎重に行なってください。

設定ファイルの変更

スパムメールとされないためにも、phpListの設定ファイルを変更してメール配信速度を1秒に1通とします。lists/config/config.php に以下の行を追加してください。

define('MAILQUEUE_THROTTLE',1);
define('USE_DOMAIN_THROTTLE',1);  
define('DOMAIN_AUTO_THROTTLE',1);

実行ファイルを準備する

cronが実行するためのファイルを準備します。具体的には以下の内容の新規ファイル phplist_cron.sh を作成します。作成する場所は lists/phplist_cron.sh となります。

#!/bin/sh

wget -q -O - 'http://[独自ドメイン]/lists/admin/index.php?page=processqueue&login=[ログイン名]&password=[パスワード]' > /dev/null

ここで、[独自ドメイン]はphpListをインストールしたドメインです。[ユーザ名]は普段phpListログインしているユーザ名になります。[パスワード]にはそのユーザでログインするためのパスワードを入れましょう。

次にFTPソフト等を使って実行属性を付加します。755に設定すればいいでしょう。

ファイルのフルパスを取得

phplist_cron.php のフルパスを取得します。私の環境では

/var/www/html/lists/phplist_cron.sh

となっています。Lolipop の場合はちょっと分かりません。というより、Lolipopの場合は分からなくて結構です。後でご説明します。(フルパスはコントロールパネルには書いてありますのでご参照下さい)

lists/phplist_cron.sh

また、さくらインターネットのスタンダードプランでは

/home/[ユーザ名]/www/lists/phplist_cron.sh

となっています。人によって異なりますので慎重に調べてください。

このフルパスを調べておかないと設定ができませんので、わからない場合はコントロールパネルなどで調べるか、レンタルサーバのFAQ等に書いてないか見ておきましょう。

cronの設定

レンタルサーバによっては cron の設定ができないところがあります。サーバ選びは慎重に行いましょう。

ロリポップの場合

コントロールパネルの左サイドメニューから「WEBツール」の「cron設定」を選択します。以下の通り設定します。実行ファイルパスはフルパスではありませんので、注意して下さい。(逆にフルパスは必要ありません)

cronの設定名   : phpListキュー処理
日付 ( 月 )    : 毎月
日付 ( 日 )    : 毎日
曜日           : 毎日
時間 ( 時 )    : 毎時
時間 ( 分 )    : 10分毎
スケジュール    : 10分毎 のスケジュールで実行します
実行ファイルパス : lists/phplist_cron.sh

設定が終わったら「設 定」ボタンをクリックします。

さくらインターネットの場合

コントロールパネルから「アプリケーションの設定」内にある「cronの設定」をクリックします。

次に、「新規追加」をクリックします。そして、以下を設定します。

実行コマンド : [phplist_cron.shのフルパス]
実行日時 
 月        : *
 日        : *
 時        : *
 分        : */10
 曜日      : すべてチェック入れない
コメント    : phpListキュー処理

設定したら「送信」ボタンをクリックします。

キューの自動処理の設定が完了しました。メールマガジン送信後、メールはキューに格納されますが、この設定を行なっておけばキュー処理は自動的に行われるので手作業で処理する必要はありません。

以上でキュー処理を自動的にバックグラウンドで行う設定が完了しました。

 

phpList:メールマガジンの発行

それではメールマガジンの配信を行います。
メニューから「メッセージ」にマウスカーソルを当てて「send」をクリックします。

新規メッセージ作成画面に遷移します。

ここで

Campain subject      = メールマガジンの件名
From Line            = 差出人(メールアドレス、差出人の順)
コンテンツ             = Compose Message を選択
Compose Message      = メール本文

となります。From Lineには既にデフォルト値が入力されていますので特に編集する必要はありません。

メール本文を書く欄では文字装飾ができますが、今回はテキストメールとして送信しますので、文字装飾は送信されるメールでは装飾がなくなります。ここでは気にせずにテキストエディタとして使いましょう。入力し終えたら下の方へスクロールします。

フッタがあらかじめ入力されていますが、ここにはセットアップで設定したフッタがデフォルトで入力されています。今回はこのままで送信します。

メールが書けたら「TEXT」ボタンをクリックします。本来は「NEXT」なので、翻訳が誤っているのでしょう。

次にフォーマットの選択です。テキストメールを送信しますので「Send as」のところで「text」を選択します。それから「TEXT」ボタンをクリックします。

「スケジュール」ではメールマガジン配信のタイミングを設定します。ここではすぐに配信しますので、何も変更せずに「TEXT」をクリックします。

「リスト」では配信するメールマガジンを選択します。ここでは「テストメルマガ」というリストを作成していますので「テストメルマガ」にチェックを入れます。作成したメルマガが一覧にない場合は、リストの作成に失敗していますので、リスト作成からやり直してください。チェックを入れたら「TEXT」ボタンをクリックします。

「Finish」で送信準備が完了しました。メールマガジンの配信はここで始まる訳ではありません。一旦キュー(Queue)と呼ばれるところに格納されます。
「Place Campain in Queue for Sending」ボタンをクリックするとキューに格納されます。

キューに格納されたメールマガジンは「キューの処理」ボタンで配信されます。「キューの処理」をクリックしましょう。

すると上の図のように何やら始まります。メールが送信されていますので、どこも触らずにしばらく待ちましょう。送信するメールアドレスの数が少なければ数秒で終わります。メールアドレスが多い場合には数分かかることもありますので、ここは辛抱強く終わるのを待ちましょう。

上の図のように「All Done」と表示されたら完了です。

以上がメールマガジンの配信手順となります。

phpListの翻訳更新に失敗する時の対処法(Ubuntu 16.04の場合)

翻訳更新を行なおうとすると、次のエラーが出て失敗することがあります。

Unable to fetch list of languages, please check your network or try again later

phpListでは翻訳更新にphpList.orgの翻訳ファイルを取りに行きます。
このとき翻訳ファイルにアクセスできなければこのエラーが発生します。

Ubuntu 16.04 LTS では、初期状態ではPHPがcURLに対応してないためにphplist.orgにアクセスできないのです。cURLについてPHP公式サイトを調べてみると –with-culr[=DIR] を付けてPHPをコンパイルする必要があるとされています。

ubuntu 16.04 LTSではcURLパッケージは標準で入っていますが、PHPからは利用できていないようです。
早速次のコマンドでパッケージをインストールします。

$ sudo apt-get -y install php-curl

あとはApacheサービスを再起動すればいいだけです。

$ sudo service apache2 restart

これで翻訳更新ができるようになります。

 

おまけ。

phpListのプラグインをインストールしようとすると、ZIPがないと怒られる場合の対処法。

これもcURLと同様の原因です。

パッケージをインストールします。

$ sudo apt-get -y install php-zip
$ sudo service apache2 restart

これでプラグインをインストールできるようになります。

phpList : メールマガジンの配信準備

前回までの操作でphpListのセットアップが完了しました。

今回はメールマガジンの配信の準備を行います。途中、画面に変な日本語が出てきますが、これはまだphpListが十分には日本語に翻訳されていないせいです。気にしないで進めていきましょう。

メールマガジンの整理

管理画面のメニューから「ユーザ」の「list」をクリックします。

リストとはメールマガジンのことです。この画面ではデフォルトですでに2つのリストができています。「test」と「newsletter」です。この2つのリストは不要ですので削除してしまいましょう。ゴミ箱のボタンをクリックしてください。

本当に削除するか問われますので、削除してもいいので「OK」をクリックします。2つとも削除したら新規のリストを作成します。

リストの新規作成

「リストの追加」ボタンをクリックしてください。画面がEDITLISTに遷移します。

ここでは以下のように設定します。

リスト名 : [メールマガジンの名前]
Public list (listed on the frontend) : チェック入れる
表示順 : 0
リストの説明 : [分かりやすい説明]

入力し終わったら「メッセージが保存されました。」というボタンをクリックします。今回のは、「テストメルマガ」を作成することにしました。これ以降は「テストメルマガ」をご自分のメールマガジン名に読み替えてください。

購読ページの作成

管理画面のメニューから「Config」の「spage」をクリックします。「ユーザ」という意味不明なボタンが出ますが、これをクリックします。これは本来なら「新規購読のページを追加」とでも言うべきなのでしょうが、まだ翻訳がうまくいってないようです。翻訳のことは今はあまり深く考えないようにしましょう。

一般インフォメーション

タイトル
[メールマガジンの名前]
利用する言語ファイル
japanese
イントロ
<h3>メールマガジンへのご登録</h3>
ヘッダ

特に変更する必要はありません。

フッタ

これも特に変更する必要はありません。

Thank you ページ

読者がメールマガジンに登録してくれた時に表示されるページです。

<h3>メールマガジンのご登録ありがとうございます</h3>
メールアドレスがシステムに登録されました。すぐに認証メールが届きますので、
リンクをクリックして正式に登録してください。
Text to display when subscription with an AJAX request was successful

特に変更する必要はありません。

ボタンのテキスト
チェック入れたメールマガジンの購読
HTMLメール選択

HTMLメールを読者が購読するかどうかのチェックを表示するものです。HTMLメールを配信しないようでしたら、

選択はしない。デフォルトtext

にしておきましょう。

電子メールの確認を表示する。
電子メールの確認を表示する。

Transaction messages

この項目は変更する必要はありません。

使用したい属性を選択してください。

名前が「氏名」になっていることを確認して、「ページでこの属性を使用するためにはこのボックスをチェックしてください。」にチェックを入れます。

その他の項目は変更しません。

申込可能なリストを選択してください。

「テストメルマガ」にチェックを入れます。

以上の入力が完了したら、「変更を保存」をクリックします。これで購読ページの作成が完了しました。

リストにユーザを追加

このままではメールマガジンに読者がいません。まずは自分を追加しておきましょう。虫眼鏡ボタンをクリックしてください。

管理者でログインしているとのお叱りを受けますが、ここは気にせずに

Send this subscriber a request for confirmation email

にチェックしておきましょう。そして、

電子メール : [あなたのメールアドレス]
Confirm your email address : [あなたのメールアドレス]
氏名 : [あなたのお名前]

を入力し、「Subscribe to the selected newsletters」をクリックしてください。

すると入力したメールアドレスに承認を確認するメールが送信されますので、承認URLをクリックして承認しましょう。

以上でメールマガジンの配信準備が完了しました。

 

 

無料メルマガ配信ソフトphpListのセットアップ

前の記事でphpListのインストールを行いました。インストール先は
http://somewhere.co.jp/
となりました。次はセットアップです。
今回はメルマガ発行に必要な最小限の設定を行います。

まずは http://somewhere.co.jp/admin/ にアクセスします。

 

いきなり英語で叱られますが、まったく問題ありません。

データベースが初期化されていないので初期化してくださいと言われているのです。素直にデータベースの初期化を行います。「Initialize Database」をクリックしてください。

まず管理者の設定を行います。次の項目を入力してください。

Please enter your name : [管理者の名前]
The name of your organisation : [デフォルトの送信者名]
Please enter your email address. : [自分のメールアドレス]
Please enter the password you want to use for this account. (minimum of 8 characters.) : [パスワード]

パスワードは最低8文字となっています。忘れないようにしておいてください。

これらの項目は後で変更も可能です。

入力が終わったら「Continue」ボタンをクリックします。するとデータベースの初期化が始まります。

この画面になります。データベースの初期化中ですのでしばらく待ちます。

となったらデータベースの初期化完了です。特にphpListのメールマガジンを読む必要がなければ「Do not subscribe」をクリックし、「phpList setup」をクリックします。

緑色の印が正常に設定できているところです。オレンジ色の印は設定ができてきません。まずは「Verify Setup」の横の「Go there」をクリックします。

このような画面になると思います。何やら英語で表示されているメッセージは今は気にしなくても構いません。各設定を見ていきましょう。

各項目は1項目設定したら「変更を保存」ボタンをクリックして保存します。これを下記の項目で行います。

1.General Settings

Website address (without http://)

ここには独自ドメインを入れます。今回の例では

somewhere.co.jp

と入力します。

Domain Name of your server (for email)

これにも同じく独自ドメインを入れます。(例:somewhere.co.jp)

Person in charge of this system (one email address)

ここには先程入力したメールアドレスが入っていると思いますので、そのままで結構です。

Name of the organisation

ここにも先程入力した項目が設定されていますので、そのままで結構です。

Logo of the organisation

ここにはロゴが入るのですが、特に必要とはしませんので、そのままで結構です。

2.security settings

この項目はセキュリティに関する項目ですが、変更すると逆効果になりますので、そのまま触らないようにします。

3.reporting settings

この項目もメール送信のレポートが必要なければそのままで結構です。

4.メッセージ settings

以下の項目を設定します。

Default fotter for sending a campaign

メールマガジンのフッタになります。英語で書かれているのでこれを一旦削除して日本語にします。以下の通りに入れます「[」や「]」も正確に入れます。

配信停止はこちら
[PREFERENCESURL]

5.transactional settings

この設定も次の項目を設定します。

購読時に受け取るメッセージ

たぶん翻訳のミスでしょうが、購読の際に読者が受け取るメールの件名です。

購読のご確認

購読時に受け取るメッセージ

これも翻訳のミス(以下略)でしょうが、購読の際に読者が受け取るメールの本文となります。

ご購読いただきましてありがとうございます。

次のメールマガジンに登録いたします。
[LISTS]

次のURLをクリックして承認してください。
承認なしではメールマガジンを受け取れません。
[CONFIRMATIONURL]

どうぞよろしくお願いいたします。

購読時に受け取るメッセージ

メルマガ解除のときに読者が受け取るメールの件名です。

メルマガの解除を受け付けました

購読時に受け取るメッセージ

メルマガ解除のときに読者が受け取るメールの本文です。

メルマガの解除を受け付けました。

いままでご購読いただきましてありがとうございました。

Subject of the message subscribers receive after confirming their email address

読者がメルマガ購読を承認した後に受け取るメールの件名です。

ご購読ありがとうございます

Meesage subscribers receive after confirming their email address

読者がメルマガ購読を承認した後に受け取るメールの本文です。

ご購読いただきましてありがとうございます。

以下のメールマガジンをお送りいたしします。
[LISTS]

よろしくお願いいたします。

6.subscription-ui settings

どくに変更することはありません。

7.list-organisation settings

メールマガジンのカテゴリを設定します。が、たくさんのメールマガジンを発行する必要がなければカテゴリに分類する必要はありませんので、ここも変更する必要はありません。

8.説明 settings

これは重要な設定なのですが、翻訳が何か変です。独自ドメインが正しく設定されていなければ変更する必要がありますが、独自ドメインが設定されていると思いますので、そのままで結構です。

9.composition settings

特に変更の必要はありません。

10.ckeditor settings

エディタの設定ですので、変更する必要はありません。

ここまで設定が完了したら、「Navigation」の「setup」をクリックしてセットアップに戻ります。

まだオレンジで印の付いた項目がありますね。「属性設定」の「表示」をクリックします。

属性の設定

属性とは何かというと、読者の「名前」や「メールアドレス」などを表すものです。他にも性別や都道府県なども設定することができます。

属性としてメールアドレスは既に初期設定でありますので、他の属性を追加します。

名前 : 氏名
タイプ : textline
デフォルト値 : [空欄]
表示順 : [空欄]
Is this attribute required? : チェック入れる

と入力して「変更を保存」ボタンをクリックします。すると、必須項目として「氏名」の属性が追加されます。

今回はこれで一旦終わります。また「Navigation」の「setup」をクリックします。

まだオレンジで印の付いた項目が残っていますが、以上でセットアップは完了です。次はメールマガジンの作成になります。

無料のメルマガ配信ソフトphpListをインストールする

知人に頼まれて無料で使えるメルマガ配信ソフトを探していました。

メルマガ配信ソフトにはいろいろありますが、そんな中オープンソースのメルマガ配信システムphpListがありました。

レンタルサーバで動かしたいとのことなので、ちょうどいい感じです。

phpListとは

phpListはメールマガジンを管理するオープンソースのソフトウェアなので、今回はこれをメールマガジン配信スタンドとして使います。
phpListはGPLライセンスの元で公開されており、誰でも自由に使うことが保証されています。もちろん利用料はいりません、完全無料です(寄付は歓迎するそうですが)。現在の最新バージョンは3.3.1です。

システム要件

phpListを動作させるには次のシステム要件を満たす必要があります。

  • PHP 5.4以上(ただしIMAPモジュールが必要)
  • MySQL 5.0以上
  • メール送信可能なMTAサーバ(sendmailやPostFixなど)
  • Webサーバ(Apacheなど)

レンタルサーバではこれを満たさないものもありますので要注意です。

さくらインターネットのスタンダート以上のプランだと大丈夫です。
メルマガを数多く配信したい場合(1日に2000通以上くらい)はVPSプランがオススメです。ただし、サーバ管理技術が必要になります。

他にも、ロリポップ!のスタンダード以上のプランもオススメです。

phpListのダウンロード

phpListのホームページはこちらです → Free Newsletter Software : phpList.org

ホームページから右上のダウロードアイコンをクリックします。あるいはダウロードのページに直接アクセスしても構わないでしょう。

Download ZIPをクリックするとダウンロードが始まります。完了するまでしばらく待ちましょう。

解凍と必要なファイル

ダウンロードしたZIPファイル(phplist-3.3.1.zip)を解凍すると、フォルダphplist-3.3.1ができます。
これがすべて必要なわけではなく、phplist-3.3.1\public_html\lists フォルダの中だけが必要なので、他は削除しても構いません。

メールアドレスを準備する

phpListでは配信不能なメールアドレスを自動で検知する機能が備わっています。この機能を利用するために(他にも理由はありますが)phpList専用のメールアドレスを用意します。phpListがメールを自動的に削除しても構わないアドレスを用意しましょう。

ここでは例として mailer@somewhere.co.jp を使用します。独自ドメインで配信する場合はそのドメインを使いましょう。

環境設定ファイルを編集する

phpListの環境設定ファイルは、
phplist-3.3.1\public_html\lists\config\config.php
となります。このファイルを書き換えますが、Windowsのメモ帳では開かないようにしてください。Sakuraエディタ等のテキストエディタを使いましょう。

まずは日本語の設定をします。config.phpの2行目に次の1行を追加します。

$default_system_language = ‘ja’;

次に、データベースの設定を行います。次の4行を変更します。よく探して見つけてください。

$database_host = 'dbhost.sakura.ne.jp'; ← レンタルサーバで指定されたデータベースホスト名
$database_name = “dbname”;              ← レンタルサーバで指定されたデータベース名
$database_user =  “phplist”;            ← レンタルサーバで指定されたデータベースのユーザ名
$database_password = ‘phplistpassword’; ← レンタルサーバで指定されたデータベースのパスワード

そして、テストモードを解除しておきます。

define (“TEST”,0);

メール環境の設定を行います。ここで先程準備しておいたメールアドレスを使用します。
下の例では mailer@somewhere.co.jp というメールアドレスの設定を行なっています。メールサーバに合わせて設定を行なってください。

$message_envelope = 'mailer@somewhere.co.jp'; ← メールアドレス
$bounce_protocol = 'pop';                     ← メール受信方式
$bounce_mailbox_host = 'pop.samewhere.co.jp'; ← サーバ
$bounce_mailbox_user = 'mailer';              ← メールユーザ名
$bounce_mailbox_password = 'mailerpassword';  ← メールパスワード
$bounce_mailbox_port = "110/pop3/notls";      ← ポート・暗号化方式

最後に、メールキューの設定を行います。次の2行を追加します。
この例の場合600秒に20通までメールを送信する設定になっています。
サーバーの許容量に合わせて設定しましょう。無駄に増やすとレンタルサーバ側から警告が来たり、メールが出せなくなったりしますので、慎重に設定をしてください。

define("MAILQUEUEBACH_BATCH_SIZE",20);
define("MAILQUEUE_BATCH_PERIOD",600);

修正が終わったら上書き保存します。

ファイルをアップロードする

listsフォルダごとサーバにアップロードします。

ドメインを設定する

http://somewhere.co.jp/ で lists フォルダにアクセスできるようにドメインを設定します。具体的な手順はDNSを管理しているところに聞いてください。

さくらインターネットの場合、左サイドメニューから「ドメイン設定」を選び、ドメインの「パス」に「/lists」を設定するだけです。

Lolipopの場合、コントロールパネルから「独自ドメイン」→「独自ドメイン設定」のメニューを開いて、「公開(アップロード)フォルダ」に「lists]を設定します。

以上でインストールは完了です。次はセットアップです。