[PHP-users 16621]Re: mail関数を使っての時間設定

moto kawasaki kawasaki @ kawasaki3.org
2003年 7月 10日 (木) 16:20:47 JST


From: SAWAI-Syusuke <teto @ sa-y.com>
Subject: [PHP-users 16620] Re: mail関数を使っての時間設定
Date: Thu, 10 Jul 2003 15:58:13 +0900
Message-ID: <200307101558.HBC79539.UPFU @ sa-y.com>

teto> > サーバーに相手からのメールが届いて1時間後と2日後に送ってきた相手に同じ
teto> > サーバーからメールを送信したいと思います。
teto> > メール送信はmail関数でいいのですが、そもそも時間設定で送信は出来るのでし
teto> > ょうか?PHPでの処理でできるのか、わかりません。
teto> > SMTPで行ないたいと思っています。

teto> ぱっとおもいつくのは
teto> 1)いわゆる /etc/aliases等の:include:構文 で CLI版のPHPを 起動する。

:include: <full path> だと <full path> で指定されたファイルを include するだけな
ので、コマンドの実行はできないんじゃないですか?
aliases からコマンドを実行させたいなら、単純に <full path> を書く文法ですね。
ただ、まあ、これって相当昔からやってはいけない筆頭です。
悪意の誰かがそのメイルアドレスにメイルを 100 万通投げれば、100 万回実行されちゃ
うですね。

teto> 2)標準入力からメールを読み込みメールアドレスを抽出する。

これはそうなんだと思いますが、

teto> 3)1時間スリープする。( void sleep (int sec) を使う sec=3600に しておけば1時間)

なんてことをすると、sleep プロセスが沢山たまるので、ちょっと怖いですね。
低トラフィックな状況ならなんとかなるでしょうけれど。

そうではなくて、2)の直後に

3') 一時間後に送るメイルを組み立てて at(1) に登録する。
    あとは、OS が勝手に仕事してくれる。

同様に、5)ではなくて2)の直後に

5')  二日後に送るメイルを組み立てて at(1) に登録する。
    あとは、OS が勝手に仕事してくれる。

でどうでしょう。

# Windows 系に at があるのかどうかは不勉強で知りません。
# UNIX 系なら当たり前のようにあると思いますが。

===
moto kawasaki <kawasaki @ kawasaki3.org>



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