dポイントプレゼントキャンペーン実施中!

PHPを利用して一ヶ月未満でPCにつての知識ほとんどありません。
どうかよろしくお願いします。
本題ですが。今自分がPHPでやりたいことは。
送信ボタンをクリックして何日後にメールを送りたいのですが。出来るのでしょうか?
一応md_send_mail()を利用してクリックするとメールは送る事はできました。
OS:MAC OS X 10.3.7
PHPVersion 5.0.2

A 回答 (3件)

以前開発したシステムでの手法ですが、



・通常は送信処理待ちHTMLをブラウザで表示。
 (JavaScriptにて時間を監視)
・送信時刻になったら、送信PHPをコール。
 (送信PHPへSubmit)
・送信PHPは送信対象となるデータがあれば
 送信処理を行う。
・送信処理が終了したら、送信処理待ちHTMLに戻る。

という感じの手順で実現させました。
ネットショップの販売店からの受注受付メール送信や
発送連絡メールの送信などで使用されるものでした。

実際には1つのPHPの稼動時間30秒の壁や、
送信処理中エラーの対処などいくつかの問題点が
発生してきます。

なおこの手法の場合、送信処理待ちHTMLを稼動させる
クライアントのマシンを24時間稼動させる必要があります。

ということで、md_send_mail()で送信できる環境であるのなら、
一応実現させる方法もあるというお話でした。
    • good
    • 0

希望の方法はPHPだけでは実装出来ません。


PHPと言うよりはサーバのスケジュール機能を利用する方がハードルが高いかもしれませんね。

MacOSXですとドキュメントも少ないと思いますが、頑張って下さい。とは言え、一般的なUNIX(Linux)的な方法でも実装可能です。

例えば、私が考える実装方法ですと。。。

メールを送信するプログラムを sendmail.phpとします。
メールを送信するかしないか判断するプログラムを check.phpとします。
メールの内容及び送信したい日を書いたデータをmaillog.logとします。

check.phpを1時間毎等、定期的に起動させ、メールを送信するかしないかを判断します。送信しない場合は無視。送信する場合はsendmail.phpをインクルードしてメール送信します。

定期的に起動するスクリプトには、MacOSXでも実装されているcronを利用します。MacOSXでもcrontab -eでcronの編集が出来ます。また、PHPを利用するため、これも最初からMacOSXに入っているcurlを利用します。
私はTerminal.appからcron編集しますが、GUIで編集出来るツールもあるようです(下記リンク:私は使った事が無いです)。

例---------
2 * * * * /usr/bin/curl http://yourdomain.com/check.php
(毎時2分にcheck.phpをcurlでチェックする)

cronの編集方法はLinuxと同じですので、cronで検索してみると良いかもしれません。

参考URL:http://www.koch-schmidt.de/cronnix/index.html
    • good
    • 0
この回答へのお礼

大変有難うございました。一度やってみます。何かありましたらまたお願いします。

お礼日時:2004/12/25 15:42

1.メールを送るだけのスクリプトを別ファイルとして


保存します。

2.送信ボタンを押した時に動くロジックではメールを
配信せず、何かテキストファイルなどに保存します。

上記1にて作成したメール配信スクリプトを、スケジューラなどで実行します。1で作成したスクリプトには2で作成したテキストファイルを読み込むロジックを実装
します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!