[PHP-users 8456] Re: メールマガジンについて

D.Yamashita php-users@php.gr.jp
Sat, 6 Jul 2002 01:26:22 +0900


山下と申します。

> 今、PHP4とmySQLを使って、フォームから簡単にメールマガジンを
> 発行できる物を作っています。
>
> 仕組みは、フォームで受け取った「タイトル」「本文」を、
> アドレスが入ったDBテーブルの行の数だけ
> mail関数をループさせ、メールを配信するというものです。
>
>
>
> とりあえず動く物はできたのですが、
> このアドレスが1000件、10000件となった場合、
> サーバーやsendmailの負担はどの程度になるのでしょうか?
> また、この方法が根本的に間違っているという事はないでしょうか?

私もメルマガではありませんが、似たような感じのシステムを使って
います。PostgreSQLとPHPと、メールサーバにはPostfixを使用してい
ますが、やはり時折エラーが起こります。

具体的な症状で一番多いのは
「ちゃんとメール関数は通ってるのに、メールが送信されていない」
というもの。

# あまり表現が適切でないかもしれませんね。プログラムルーチン上
# メール送信関数を通っていることは間違いないのに、実際に
# 相手に飛んでいない(ログにも載ってない)ということが起こって
# います。

はっきりした原因は未だに分かっていません。やはりループの間隔が
短すぎるからかもしれません。

他の同業社の方もおっしゃっていましたが、メルマガの送信フォームを
PHPで作るのはいいとしても、送信ルーチンまでPHPでやってしまうのは
あまりよろしくないかもしれません。Cやシェルスクリプト、Perlなどで、
ちゃんとある程度の間隔を置いて繰り返し送信ができるプログラムを
作っておいて、PHPからそのプログラムにデータを渡し、バックグラウンドで
処理を継続させておくというのが定石だと思います。

私のシステムでは数10通の規模なのでそのまま直に流していますが、
数百通、数千通という規模になると、サーバの負荷もありますが、
PHPの処理タイムアウトの問題とかも絡んできそうな気がします。
そこにさらに不達とか遅延とかが起こってくると、PHPのプログラムの
他に色々と気を回さなければいけないようになると思います。

すみません。私も他人に指摘されながら実際にやってない人間の一人
ですのであまり大きな事は言えません。m(._.)m

頑張ってください。実際にやってみた時のサーバの負荷状況などを
レポートしていただけるとうれしいカモ。^^;

では。

国国国国国国国国国国国国国国国国国国国国国国国国
大阪大学大学院 工学部研究科 情報システム工学専攻
                        山 下  大 介
  Mail: yamasan@ise.eng.osaka-u.ac.jp
国国国国国国国国国国国国国国国国国国国国国国国国