- ベストアンサー
時刻指定メールのプログラムをPHPで作るには?
はじめまして。さっそく質問させてください。 私はPHPでホームページを作っているのですが、その中で 「ウェブ上から訪問者が時刻を指定して、メールが送られるようにPHPでプログラムできないかな?」と考えています。 ちなみにどこかのHPで、「PHPはスクリプト言語なので無理」っていう内容を読んだことがあるのですが、もしそうならデータベースだとかcgiなど他の方法を教えていただけるとありがたいです! ご回答よろしくお願いします!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
指定した時刻ピッタリに送信するのは難しいかも。 1)メール送信データを作成し、指定された送信予定時刻も記録する。データベースかテキストデータで保存。 2)データベースかテキストデータを読み込んで、指定された時刻が過ぎていたらメール送信するCGIを作る。 2のCGIをcrontabで1分おきに起動する。 PHPで実現できるとしたらこんなとこでしょうかね?
その他の回答 (2)
- moon_night
- ベストアンサー率32% (598/1831)
さくらのレンタルサーバならばcronが使用できます。 ただし、ライトプランでは使用できません。 http://www.sakura.ne.jp/rs/03_05.shtml
お礼
ホントだ!できるんですね!! 幸い僕はスタンダードプランです♪ 早速チャレンジしてみます!「OKWAVE」っていいところですね♪ ご親切にありがとうございました!
- gentaro
- ベストアンサー率47% (105/221)
あくまでCGIで行う、ということを前提に、 レンタルサーバーで「共有サーバー」、つまり一台のサーバーを何人かで使っている形態であれば、crontabの利用はダメかもしれません。 「専用サーバー」一台丸ごと一人で借りている場合は、ほとんどcrontabは使えると思います。 要は「シェルが使えてシェルコマンドを実行できる」かどうかです。 「共有サーバー」でTELNETないしSSHがなどからシェルが使えてもcrontabはダメな場合もありますね。 crontab というのはUnix系OSのコマンドで、日時時刻を指定して、プログラムなどをスケジュール実行できる機能です。 http://homepage2.nifty.com/cs/linux_command/re-command/job_12.html crontabが使えなければ、メール送信実行のプログラムを別の手段で起動するしかありません。 HPに埋め込んで、HPが閲覧されたら送信実行のプログラムを起動する、という方法もできますが、よほどアクセスの多いHPでなければ実用的ではありませんね。 crontab以外でも、例えばatコマンドなどをPHPのプログラムからシェルに投げる方法(PHPのsystem、exec関数を使って)もできるでしょうが、これがお使いのサーバー業者から許されるかどうかはわかりません。 いずれにしろ「共有サーバー」ではまず難しいと思います。
お礼
gentaroさん、ご回答ありがとうございます! たぶん僕の場合、共有サーバーですね。 ただ、すごく勉強させていただきました!もっと勉強しようと思います。質問させていただいてよかったです。ホントにありがとうございました♪
お礼
素早いご回答に感謝します! なるほど!やっぱり専門家に伺うのが一番なんですね。 (正直3ヵ月くらいひとりで悩んでました…。) ちなみにgentaroさん、勉強不足で申し訳ないのですが、「crontab」っていうのを少し詳しく教えていただけないでしょうか?それから僕はさくらサーバーっていうレンタルサーバーなのですが、たいがいどこのホストでも大丈夫なのでしょうか?