- ベストアンサー
期限がきたらメールを送る仕組みとは??
レンタルサーバを借りていると、期限が近づくと 「あと1ヶ月で期限です」 「あと1週間で期限です」 などのメールが送られてきます。 この仕組みはどのようになっているのでしょうか? まさか、手動でメールを送っているとは考えられません。 メールサーバをうまく使えばこのような設定はできるのでしょうか? それともソフトがあるのでしょうか? 詳しい方、教えていただけるとうれしいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
たぶん一番わからないのは、定期的なチェックと実行ではないかなとおもいました。 要件にもよりますけど。 方法としては主に2つ。 定期的に実行するのを、外部に委ねるか、自ら実装するか。 外部に委ねる場合について。 まず、何らかの形で、メール送信(したい)日と宛先、内容のリストを用意する。 次にそのリストの送信日と今日の日付を比較し、同じであればメールを送信するというプログラムを作る。 このプログラム(プログラムAとする)が毎日定時に実行されれば、希望の動作になりますね。 定期的に実行するプログラムを作ってもよいですが、例えば、Windowsならタスクスケジューラ、LinuxならCronに適切に登録することで、定期的に実行され、希望の動作となります。 自ら実装する場合は、Windowsならサービス、LinuxならDaemonとしてプログラムを作成し、実行。 プログラムでは常にループして、日単位とかなら、指定した時間かどうかをチェックして、指定した時間になったら、プログラムAと同じ動作を行うように作っておけばOKと。 まぁ実現方法はこれら以外にもいろいろ思いつきますが、一般的には上記のような方法でやっているでしょう。
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
>データベースに契約日を入れておいて、現在の日にちから計算し、期限が1ヶ月を切るデータを抽出。(MySQLとPHPで可能と思われます) PHPの専門分野ではないですが、可能ではあります。 >その後、その該当者にいっせいにメール送信。(これはPHPで可能でしょうか?) これも可能です。 >現場では、すべて自動なのか?(全く何もしない) 普通はそうでしょう。回答に、 >毎日決まった時刻に決まった処理を実行するのもコンピュータの得意とするところです。 と書いたとおりです。 Unix/Linuxならcronというタイマーによるプログラム起動の方法があります。Windowsならアクセサリ→システムツール→タスク。 期限通知メールを送るほかにも、本当に期限が来たらアカウントを閉塞したり、クレジットカード利用ならカード会社にデータを送って料金を引き落としたり、などなどユーザー管理だけでもたくさんの処理が必要です。 サーバー数十台からなるような大規模なシステムの場合は、運用管理ソフトによって多数のプログラムを連携させて実行しているケースもあります。
お礼
ご回答ありがとうございます。 私が考えていた以上に複雑な仕組みなのですね。 とりあえず、Linuxのcronなどを勉強してみます。 ありがとうございました。
- notnot
- ベストアンサー率47% (4900/10358)
手動でやるとすると、会員一覧表を順番に見て、期限の近づいた人を選び出してその対象者にメールを送るというのはおわかりですよね。 人が行うこのような単純作業はプログラム化できます。プログラムでその処理を記述して、一日に一回それを実行しているわけです。 毎日決まった時刻に決まった処理を実行するのもコンピュータの得意とするところです。
お礼
ありがとうございます。 概念はよく分かりました。 実際に、レンタルサーバ業者がどうやっているのか、何を学べば同様のことができるのかが知りたいのです。 データベースに契約日を入れておいて、現在の日にちから計算し、期限が1ヶ月を切るデータを抽出。(MySQLとPHPで可能と思われます) その後、その該当者にいっせいにメール送信。(これはPHPで可能でしょうか?) 現場では、すべて自動なのか?(全く何もしない) それとも、毎日1回は簡単な操作の後、メールを送っているのか? もしよろしければ、もう少し教えていただけると嬉しいです。 よろしくお願いします。
お礼
ご丁寧にありがとうございます。 仰るとおり、定期的なチェックと実行について、どういう仕組みか、何を勉強すればいいのかが分かりませんでした。 Linuxですので、CronやDaemonについて勉強してみます。 大変参考になりました。 ありがとうございました。