[PHP-users 25159] Re: phpでメーリングリスト作成

しん shin @ aslove.co.uk
2005年 3月 27日 (日) 16:45:08 JST


しんと申します。お世話になります。

> phpとmysqlでメーリングリストを作成可能かと色々と試しています。

過去ログにも色々参考になる記事は、あると思いますが、
私も2年ほど前に、あるサイトの運用ツールの開発として経験した内容を、
手法(と言えるかどうかは別として)の一つとして、ご参考になればと。。。。

構築当初は、私もブラウザ上で全てが完結する内容で考えていたいたのですが、
実行中のブラウザを終了させることができない、
タイムアウトを気にしなければならない、など
わずらわしさが幾つかありましたので、違う方法を考えようとしました。

そこで、
PHPのバージョンや、サーバ環境にも依存しますが、
配信処理のPHPスクリプトを、バックグラウンドで実行させるように、
コマンドラインから実行する形式を取っていました。
http://www.php.net/manual/ja/features.commandline.php

bashなどのシェルスクリプトを用いても、なんら問題ないのですが、
せっかくPHPで途中まで開発していたので、これにしたのです。

送信するリストデータを、データベース上で管理し、
配信処理用のPHPから参照させておりました。

途中で処理がコケた場合の判断として、送信済みのログを取ると便利ですが、
私の場合は、テーブル上にflgを付けて、再送信を楽に開始できるようにしました。
ただ、データベースにはやや負荷がかかるやり方かもしれません。

それから、エラーメールの処理があると無いとで、
メールサーバへの負荷がかなり変わると思います。

あと、配信作業が楽になるように、
配信処理のPHPスクリプトが、ブラウザ上から実行、停止、再実行できるようにしま
した。
これも環境に依存しますが、system関数などの、プログラム実行関数が使用できない
と、
無理だと思います。
http://www.php.net/features.safe-mode

他、テーブル上のflgを確認させ、その情報を配信状況としてブラウザ上から見れた
りすると、なかなか嬉しかったり(自己満足^^;)

一見、工数がかかるように見えますが(そうでもないか^^;、
配信そのものの処理がスクリプトとして、ある程度完成しているのなら、
後は、PHPがコマンドラインで実行できるかどうかだけの問題なので、
環境如何にもよりますが、実装は楽ですよ。

当時の環境は、記憶が曖昧なのですが、
Redhat8, Apache1.3.x, PHP4.3.x, PostgreSQL7.3.x
サーバはレンタルサービスでしたが、php.iniの設定は可能でした。

以上、あくまで、参考例として。。。。
(まとまりの無い文章でスイマセン)

# To: SUNADAさん
# 今回の投稿ネタは、かなりジャンルや手法が幅広いので、
# プラットフォームやバージョンなどを明記しておくと、
# より詳しく参考になる意見を受けることができると思いますよ^-^。

しん
shin @ aslove.co.uk




PHP-users メーリングリストの案内