cronを使ってリマインダメール機能を作る方法と参考サイト

このQ&Aのポイント
  • PHPで作成されたサイトで、cronを使用してスケジュールをメールで送る機能を作りたいです。具体的な内容は、メンバー登録が必要であり、ログイン後にユーザーごとのスケジュール帳(カレンダー)が利用できます。カレンダーに登録されたスケジュールを前日または当日にメールで通知することが目標です。しかし、cronを使用する方法について具体的なイメージがわかず、参考になるサイトなどを教えていただけますか?
  • cronを使用してリマインダメール機能を実装する方法を教えてください。PHPで作成されたサイトでは、メンバー登録が必要であり、ログイン後にユーザーごとにスケジュール帳(カレンダー)を利用することができます。カレンダーに登録されたスケジュールは、前日または当日にメールで通知されることが目標です。しかし、cronの具体的な使い方についてイメージが湧かず、参考になるサイトなどを教えていただけませんか?
  • cronを用いてリマインダメール機能を作成したいです。PHPで作られたサイトで、メンバー登録が必要であり、ログイン後にユーザーごとのスケジュール帳(カレンダー)を利用できます。カレンダーに登録されたスケジュールは、前日または当日にメールで通知することが目標です。cronを使用する方法について具体的に教えていただけないでしょうか?参考になるサイトなども教えていただけると助かります。
回答を見る
  • ベストアンサー

cronを使ってリマインダメール機能を作りたい

件名の通り、スケジュールをメールで送る機能をつくりたいと思っています。 サイト自体はPHPで作成していて、Linuxサーバーを利用しています。 具体的な内容は、 1.メンバー登録が必要(メールアドレスを入力) 2.ログイン後、ユーザーごとのスケジュール帳(カレンダー)が利用できる 3.カレンダーに登録したスケジュールを、前日か当日にメールでお知らせする。 この3の部分が今問題で、cronを使えば実現できそうだと言うことは分かったのですが 利用したことがないので、実際にどのような流れで作ればいいのか イメージがわきません・・・ スケジュールは消したりも出来るようにしたいと思っています。 お答え頂くに当たって、他どのような情報を書けばいいのかわからないのですが、 具体的なスクリプトでなくてもいいので、方法や、参考になるサイトなどありましたらご教授頂けませんでしょうか。 よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

cronは、定期的に(あるいは正規表現を使った条件式による)サーバー内のプロセスなどを実行するのが主な目的です。 例えば、そのメールを送る時間を決め、毎日その時間になったら、メール送信するPHPをcronで実行させるのが手っ取り早いかも知れません。 もちろんそのPHPには、現在の時間とスケジュール登録日とを比較する処理が必要になります。また、コマンドラインからの実行になります。 例)php -f /home/vhosts/hogehoge.com/httpdocs/mail.php、、、など。 他にも、PHPからメールを送信する方法だけでなく、ユーザー毎のスケジュールをDB化し、そのDBを元にサーバーから直接メールを送信する方法などもあります。

haruru0331
質問者

お礼

ご回答ありがとうございます。 cronでPHPを実行させる方は、なんとなくのイメージがつかめてきました。 DBを元に直接メールを送る方法なんていうのがあるのですね。 今使っているのはMySQLですが、これはcronで直接コマンドラインから MySQLを参照させて、メールを送るという感じなのでしょうか? たしかに、PHPを使わなくてもcronで直接サーバーから送ることも出来そうな気がしてきました… 質問しておいて自分の中でもまだまとまっておらず、申し訳ないです。 もう少し考えてみます。 ありがとうございました。

関連するQ&A

  • makewhatis.cron

    お世話になります。 RedHat Linux ESサーバを運用しています。 先日、up2dateをかけ以来、週に一回 root宛に run-parts /etc/cron.weekly という件名のメールがきます。 メールの内容は下記のようになっています。 /etc/cron.weekly/makewhatis.cron: zcat: stdout: Broken pipe zcat: stdout: Broken pipe   .    .   .   . なにかエラーが起きてるみたいなんですが、 makewhatis.cron が何をしているcronなのか解りません。 makewhatis.cron が何をしているものなのか? エラーをなくすには、どうしたらいいのか? または、makewhatis.cron を削除しても問題はないか? 解らないことだらけで、すみませんがご教授いただけるとありがたいです。 よろしくお願いいたします。

  • cronジョブ

    cronの実行時間は、/var/spool/corn/ユーザ のファイルで 時間が記述されているので、実行される時間はわかるのですが、 cronで、ある1つのシェルスクリプトが起動した時間から終了までかかった時間を知りたいのです。 (timeコマンド、メール送信による判断は無しでお願いします。) linuxのどこかのログファイルに、cronのシェル1つ1つのジョブの終了時間が記述されている ファイルはないでしょうか?(可能であれば、実行時間もわかるとよいのですが。) ご教授お願いします。

  • 新WEBメールでなぜカレンダー/スケジュール機能なくなってしまったの?

    新WEBメールでなぜカレンダー/スケジュール機能なくなってしまったの? カレンダー/スケジュール機能を便利に使用していました。 今は いちいち 旧バージョンを クリックして それから カレンダーを クリックして たどり着いています。 下記 お知らせ らしきものを 見つけましたが カレンダー/スケジュール機能を 無くした背景は つかめません。 Webメール のカレンダー / スケジューラー機能は、 Web メール旧バージョンのみご利用可能です。 非常に 困っています。

  • Vine3.1 cron実行時のメールが届きません。

    vine3.1を利用しています。 mailto=***@***.co.jpとメールアドレスを記載しても 全くメールが送られてきません。 内容はrsyncを記述したスクリプトファイルを 実行するものです。 コピーは正常にできているので、cron自体は 正常に動いているようです。 何が問題なのでしょうか?

  • cronで外部ファイルへアクセス

    はじめまして。分からない事あり、質問させて頂こうと、アカウントを取得いたしました。 cronが使える共有レンタルサーバー内に、ある簡単なメールが送信されるファイルを置きました。cronテストのために設置したファイルで、アクセスされるとメールが送信されるだけのものです。(ブラウザ経由でアクセスしてもメールが送信されます) そこで、以下のようなファイルを作成し、cronにて日時設定を行うと、正常にメールが配信されるまで確認いたしました。(mail.phpとは上記メール配信ファイルです) #!/bin/sh #PHP /usr/local/bin/php /~~~~~~/cron_test/mail.php exit 他方、あるレンタルサーバーを借りているのですが、そこではcronが使えません。 そこで、アクセスされたらPHPが働くファイル(access.phpとします)を置き、cronが使える上記サーバーで定期的にそのaccess.phpにアクセスしたらどうか?と考えに至りました。 要は、cronが使えない以下のサイト(ファイル)にcronを使ってアクセスしたいといった感じです。 http://○○○.com/access.php ここで質問なのですが、上記のような一連のcronの中で、mail.phpにあたるスクリプトはどのようなものになるのでしょうか? echo"<img src=\"http://○○○.com/access.php\">"; と記述しているのですが、失敗に終わってしまいます。 前置きが幾分長くなってしまいましたが、この外部ファイルをアクセスするためのソースが分からず困っている次第です。 お忙しい中恐縮ですが、アドバイスのほど宜しくお願い致します。

    • 締切済み
    • PHP
  • コアサーバー(coreserver)でのcronの設定について

    こんにちは。 コアサーバーで、趣味のメルマガを発行することにしました。 「7日間サッカー講座」のような感じのものです。 他の目的のために、楽メール(​http://www.raku-mail.com/)​を 以前に購入していましたので、こちらを利用したいと考えています。 ところが、ステップメールを送るためのcronの設定で、苦戦しています。分かる方がいらっしゃいましたら、アドバイスをいただけると嬉しいです。 cronについては公式サポートの対象外なもので…。 ​http://www.raku-mail.com/manual/raku_setup.htm​ こちらのページに書いてあるように、楽メールを設置しました。 send.cgiをcronで毎時0分に起動させたいのです。 独自ドメインを設定しているので(ここでは仮にabc.com)、 distibuteフォルダは、 public_html/​www.abc.com/distribute​ の階層にあります。 public_htmlと同じ最上階に、cron.shを置きました。 cron.shの中身は、 #!/bin/sh #PERL /usr/local/bin/perl /virtual/アカウント名/public_html/​www.abc.com/distribute/cgi-bin/send.cgi​ exit です。 そしてcronジョブを毎時0分に起動させるように、コアサーバーの管理メニューから保存しました。 以上が、僕がネットで1から調べ、やったことです。 しかし、毎時0分になにやらエラーメールらしきものが送られてきます。 エラーメール題名:Cron <アカウント名@s59> /bin/sh /virtualアカウント名/cron.sh エラーメール本文:Can't locate /virtual/アカウント名/public_html/​www.abc.com/distribute/cgi-bin/lib/send/send.pl​ in @INC (@INC contains: /usr/local/lib/perl5/5.8.8/i686-linux /usr/local/lib/perl5/5.8.8 /usr/local/lib/perl5/site_perl/5.8.8/i686-linux /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl .) at /virtual/アカウント名/public_html/​www.abc.com/distribute/cgi-bin/send.cgi​ line 17. これは、僕がどこを間違えているからなのでしょうか? 分かる方がいらっしゃっいましたら、教えていただけると助かります。 よろしくお願いします。

  • globがcronで動作しません

    新着メールをチェックするPHPスクリプトを作成しています。 PHPはver.5 メールサーバーはqmail のレンタルサーバーです。 目的のスクリプトは、メールボックスのnewディレクトリをglobした後、countでメール数を数え、 1以上なら未読有りと判断する。というものです。 簡単にソースを書くと以下です。 $result = count( glob( newディレクトリへのパス\* ) ); このスクリプトにブラウザからアクセスすると思い通りに動作するのですが、 cronで実行させるとうまく動作してくれません。 スクリプトをひとつずつ確認したところ、globがうまく動作していないことがわかりました。 ブラウザアクセスでは思い通りに動作するので、スクリプトやパスなどは間違っていないはずです。 対象ディレクトリがメールボックスなので、権限などの問題かと思いましたが、 どのように対処すればいいのかさっぱりわかりませんでした。 対処法あるいは参考になるサイトをご存知でしたら、教えてください。

    • ベストアンサー
    • PHP
  • PHPの定期実行[ Linux&cron ]

    Redhat9.0 PHP4.3.3を利用しています。 cronとコマンドライン版のPHPを利用して「1分毎に自分にメールを送る(実験用)」プログラムを実行させたいのですが、コマンドラインでは実行可能なのに、cronに登録してもメールが送られてきません。cronにはプログラムを実行したログが残っています。 完全に行き詰ってしまった。よろしくお願いします。 [ crontab ] * * * * * php /home/hoge/mail.php [ mail.php ] mb_language("Ja"); mb_internal_encoding("SJIS") ; $subject="test"; $content = "test"; $mailfrom="From:hoge@hoge.jp"; $mailto="***@hoge.com"; mb_send_mail($mailto,$subject,$content,$mailfrom);

    • ベストアンサー
    • PHP
  • GoogleAppsカレンダーについての質問

    GoogleAppsカレンダーについての質問 はじめての質問ですがよろしくお願いします 今GoogleAppsを独自ドメインを会社で利用しています。 現在カレンダ(Calendar)でスケジュールを活用していますが 他人のスケジュールが増えてくると見難いです。 具体的には ・月別表示時の表示幅が狭く件名が切れてしまう  (日別表示に切り替えないと件名が見えない) ・デスクネッツ(Desknet's)等のように他人のスケジュールを  見やすく一覧に表示する どなたか対策や回避策をご存知の方アドバイスをお願いします。

  • cronでwgetツールを自動化したい

    大学でvine Linuxを利用しています。 5つのサイトのソースファイルを毎日自動収集するようなシェルスクリプトを組みたいと思っています。 (/home/name/bin/の下に日付のディレクトリを作成してその中に5つを保存します。) 本や色々なサイトを参考にして、 #!/bin/sh d=`date +%m%d` * 7 * * * wget -P /home/name/bin/${d}/ http://A * 7 * * * wget -P /home/name/bin/${d}/ http://B * 7 * * * wget -P /home/name/bin/${d}/ http://C * 7 * * * wget -P /home/name/bin/${d}/ http://D * 7 * * * wget -P /home/name/bin/${d}/ http://E これをファイル.shとして保存して、 crontab /home/name/bin/ファイル.sh でcronに読み込ませたらいけるかと思ったんですがダメでした。 (crontab -eだとvimエディタになる設定のようなのでファイルを作成してから登録したいです) 初めてのシェルスクリプトで色々試しても上手くいかなくて困っています。 どなたか御指導よろしくお願いします。

専門家に質問してみよう