今回は、メールマガジンなどのダイレクトメールを大量に送信できる メーリングリストの管理ソフトである phpList をインストールしてみようと思います。
電子メールのメーリングリストを管理するオープンソースソフトウェアである。PHPで書かれ、MySQLデータベースに情報を保持する。phpListはGPLの下に置かれ、自由に配布できる。
(出展:Wikipedia)
[ システム要件(phpList 3系) ]
- PHP 5.3系以上(IMAP module が必要)
- MySQL 5.0系以上
- Web Server(Apache など)
- メール送信可能なMTAサーバー(Sendmail,Postfix など)
mailman + Postfix + Apache でメーリングリストを使ってみる(ソースインストール編) で扱った mailman のような 討論用のメーリングリスト でなく、告知用のメーリングリスト の管理ソフトになります。
そのため、一方向の送信のみ対応(返信は受け付けません)しており、メールマガジンやメール告知などの用途向けののメーリングリスト管理ソフトとなります。
では、早速、インストールをやってみましょう。
- 目次
- 履歴
2014年3月6日 初版
前提条件
先にも示したように システム要件として、PHP,MySQL,ウェブサーバー,MTAサーバー(メールサーバー)が必要になります。
ここでは、以下の環境で1つのサーバーにすべて環境が整っているものとして以降の解説を行います。
- PHP 5.4系(IMAP module を含む)の最新版
- MySQL 5.1系 の最新版
- Apache 2.2系 の最新版(ここではウェブサーバにApache を使ってみます)
- メール送信可能なMTAサーバー(Sendmail,Postfix など) : ここの設定は特にないのでメールが送信できる環境があれば可(外部サーバーでも可)。
phpListの最新版をダウンロードし、展開する
phpListの最新版(ここでは3.05)をダウンロードし、ウェブサーバーで確認できるようにします。
ここでは、/var/www/ 配下に最新版のphpListを展開しておきます。
|
ウェブサーバーでphpListの公開するディレクトリを設定する
phpListは、ウェブサーバー経由でメーリングリストの作成やユーザの登録削除、投稿などメーリングリスト管理全般を行うことができます。
そこで、phpListで公開するディレクトリをウェブサーバーで設定します。
ここでは、上記のように /var/www/ 配下に phplist-3.0.5 というディレクトリへphpListの最新版が展開されています。
この場合、公開するディレクトリは、
/var/www/phplist-3.0.5/public_html
となります。
以降に、Apacheの仮想ドメインサーバーを phplist.example.com として、公開する例を簡単に解説しておきます。
CentOS/Scientific Linux では、/etc/httpd/conf.d/phplist.conf
Debian/Ubuntu では、/etc/apache2/sites-available/phplist
の名前でファイルを作成します。
|
/var/www/phplist-3.0.5/public_html
となります。
間違っても /var/www/ や /var/www/phplist-3.0.5/ などを公開しないようにしましょう。
設定を終えたら apacheの再起動を行っておけばOKです。
また、ログディレクトリ ( /var/log/httpd )が存在しない場合は作成しておきましょう。
|
簡単な動作確認だけはしておきましょう。
先の設定例でいうと、http://phplist.example.com へアクセスしたら、以下のようなページが表示され、数秒後、自動的に http://www.phplist.com/ へ遷移すればOKです。
phpListで使用する php のIMAP モジュールをインストールする
先にも書きましたが、phpListは、php のIMAP モジュールが必要となります。
まず、phpinfo(); の出力結果を確認します。
|
以下のように IMAP 情報が出力されればOKです。
もし、出力されないよなら、以下のように IMAPモジュールをインストールして ウェブサーバーの再起動、PHP FPMなどのサーバーを利用している場合は、それも再起動すればOKです。
|
phpListで使用するデータベースを作成する
先にも書きましたが、phpListは、Joomla!やWordpressと同様、mysql(データベース)とphpで動作します。
そのためphpListのためのmysql(データベース)を1つと、それを扱うユーザを作成しておきます。
- phpListが使用するデータベース名 : phplist
- phpListが使用するユーザ名 : phplist
- phpListが使用するパスワード : phplistpass
|
phpListをセットアップする
データベース、phpListの最新版を展開しましたので、あとは、phpListをセットアップすればOKです。
phpListをセットアップするには、一部のファイルを編集してから、ウェブ画面からインストールを実行します。
環境設定ファイルを編集する
phpListの環境設定ファイルは、ここでの例では、
/var/www/phplist-3.0.5/public_html/lists/config/config.php
になります。
このファイルで、データベース、MTAサーバー、バウンスメールの環境設定を行います。
|
上記の箇所が変更、追加箇所です。
上記以外は、デフォルトのままでOkだと思います。
国際化を図る
/var/www/phplist-3.0.5/public_html/lists/admin/locale/ja/phplist.po
のようにpoファイルで存在します。(./ja/ : 日本語の場合 )
通常は、何も気にせずログインすれば自動的に翻訳しれるはずです。
ログイン時に自動的に ‘phplist.po’ ファイルが読み込まれ、データベースに保存され、そのデータベース情報によって、翻訳されるようになっています。
翻訳内容が気に入らない、翻訳をもっと完全なものにしたい場合は、’phplist.po’ファイルを編集し、再ログインすれば 再読み込み処理が実施されます。
日本語文字コード iso-2022-jp に対応する
phpListで日本語文字コード iso-2022-jp に対応するには、一部のソースコードを編集する必要があります。
ここでの例では、
/var/www/phplist-3.0.5/public_html/lists/admin/class.phplistmailer.php
の編集が必要になります。
ここでは、日本語のメールが、一般的に
文字コード : ‘iso-2022-jp’
エンコード : ‘7bit’
を使っているので、そのための変更をします。
ただ、古いメールクライアントを使っている場合は、UTF8の文字コードを正しく読めない場合もあるので注意が必要です。(最近のメールクライアントやウェブメールなら問題ないはずです)
|
上記の変更で、日本語の場合に無条件に
文字コード : ‘iso-2022-jp’
エンコード : ‘7bit’
としています。
phpListのセットアップを行う
ウェブ画面からphpListをインストール(セットアップ)します。
ウェブブラウザから、lists/admin/ を直接アクセスします。
ここの例では、http://phplist.example.com/lists/admin/ へアクセスすることになります。
- データベースの初期化
http://phplist.example.com/lists/admin/ へアクセスすると最初に上記のようなページが表示されます。
ページ内の Initialise 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. : 管理者パスワードを8文字以上で入力します。
設定を終えたら、Continue ボタンをクリックし、データベースの初期化を実行します。
これでデータベースの初期化が完了となります。
phpList setup ボタンをクリックし、phpListの設定を行います。
- phpListの設定
コンフィギュレーション オプション の中で Verify Settings(設定の確認)の Go there をクリックします。
- Who gets the reports : レポートをメールするアドレスを入力します。
- From email address for system messages : システムメッセージの差出人アドレスを入力します。
- Reply-to email address for system messages : システムメッセージの返信先アドレスを入力します。
最低限 上記の項目は確認しておきましょう。
上記のメールアドレスは、自動的に作成されています。上記の例で listreports は、少なくとメールを受信できるようにしておく必要があります。
phpListのセットアップを行う
ウェブ画面からphpListをインストール(セットアップ)します。
ウェブブラウザから、lists/admin/ を直接アクセスします。
ここの例では、http://phplist.example.com/lists/admin/ へアクセスすることになります。
- テスト用リストにユーザを登録してみる
テスト用リスト(test) に新しいユーザ(メールアドレス)を登録してみたいと思います。
上記のように メニューの Subscribers(購読者)- リスト をクリックし、メーリングリストの管理を行います。
ここで 既にある テスト用リスト(test) に新しいユーザ(メールアドレス)を登録するために、Add(追加)ボタンをクリックします。
ここで追加するメールアドレスを入力し、Import emails ボタンをクリックすると追加されます。
- テスト用リストにメッセージを送信してみる
テスト用リスト(test) にメッセージを送信してみたいと思います。
上記のように メニューの Campaigns(キャンペーン)- 送信 をクリックし、メッセージの編集・送信を行います。
phpListでは、メッセージをキャンペーンと呼びます。
- メールタイトル : メールタイトルを入力します。
- From Line : 差出人アドレスを入力します。
- コンテンツ : ウェブページを指定するか、メッセージを編集するか指定します。ここでは、Compose Message (メッセージ編集)を選択します。
- Compose Message : メッセージを入力します。
編集を終えたら、NEXTボタンをクリックします。
- Send as : メッセージフォーマットを選択します。ここでは、text(テキスト)を選択します。
編集を終えたら、NEXTボタンをクリックします。
- Embargoed Until : 設定日時まで送信しない。
- Stop sending after : 設定日時を過ぎたら送信を停止する。
- Requeue every : 指定毎に再キューへアタッチする。
- Requeue Until : 設定日時まで再キューへアタッチする。
これは、送信のタイミングと処理が長引いた時の対応を指定するものです。ここでは、即送信としたいので、そのままNEXTボタンをクリックします。
送信したいメーリングリストを指定します。ここでは、テスト用リスト(test)のみを選択し、NEXTボタンをクリックします。
- このメッセージの送信が始まるとき、アラートする電子メール : 開始通知メールが欲しい場合は、通知先アドレスを指定します。
- このメッセージの送信が完了したとき、アラートする電子メール : 終了通知メールが欲しい場合は、通知先アドレスを指定します。
- add Google Analytics tracking code : Google Analyticsのトラッキングコードをメールに埋め込む場合はチェックします。
- Reset click statistics : 統計データをリセットする場合はチェックします。
特に何も必要ないので、ここは何も指定せずSend campaignボタンをクリックし、メッセージを送信します。
上記のようにキュー(処理待ち状態)に追加されたページが表示されます。
ここでは、すぐにキュー(処理待ち状態)を実行したいので、キューの処理ボタンをクリックし、すぐにメールの送信を開始します。
上記のようにすべてのメールの送信を終えるとAll doneが表示され完了となります。
ここでは即実行するためにキュー処理ボタンをクリックしましたが、大きなリストの場合、プロセスを占有し画面に出力され続けるのも困ることがあります。 その場合は、以下のようにCRONの設定を行うことで、バックグランドでキュー処理を実行することもできます。
17 0 * * * /usr/bin/php /var/www/phplist-3.0.5/public_html/lists/admin/index.php -pprocessqueue -c/var/www/phplist-3.0.5/public_html/lists/config/config.php >/dev/null
- メッセージを確認する
先に送信したメッセージが、管理者のメールアドレス(デフォルトでテスト用リストに含まれている)と 先に追加したメールアドレスに、それぞれ配信されたか確認します。
上記のようにメッセージが各メールアドレス宛に受信できればOKです。
上記以外にいろんな設定があり、大量メールを送付する場合にある程度 間隔をおきながら送信するようにすることもできます。 大量メールを送信するとスパム扱いされる可能性がありますから、このような機能は非常に大事になってくるでしょう。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :