• ベストアンサー

決まった時間にメールの自動発信

cgiの方には初めて書き込みます、urizakaともうします。 フォームで入力した内容を、ある決まった時間になるとメールで 会員に送信するというメールマガジンシステムを作りたいのですが、 この掲示板の情報や本の情報によるとcronを作って24時間プログラム が動く状態にするという情報しかありません。  しかし、できればメールを生成して、そのときにヘッダー等に メールを送信する時間をあらかじめ入力しておいて、決まった時間に なるとメールが会員に送信されるといったシステムにしたい、つまり cronなしのシステムを作りたいのですが、そのようなことはCGIで可能 なのでしょうか? すみませんが、ご存知でしたら教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • nipotan
  • ベストアンサー率59% (134/227)
回答No.1

cron 等ナシでは不可能です。 web サーバのタイムアウト設定を 24 時間とかにして、その時間が来るまで、CGI の処理を停止させておけばアリかも知れませんが、サーバのタイムアウトがあると、CGI に強制終了 (kill) のシグナルが発せられるので、CGI 自体のプロセスが死にます。 cron は、別に 24 時間云々とかじゃなくて、cron が実装されている環境であれば基本的に web サーバと同じく「ずっと動いている」もんです。 それが当たり前です。 なので、常時サーバに微弱な負荷は掛かってます。 何故、cron じゃダメなんですか? ちなみに、毎日毎日同じ時間に配信するんじゃなければ、at コマンドを用いたほうが、不必要な負荷は掛けないと思います。 1. フォームから受け取ったデータを下にメールを生成し、ファイル化 2. sendmail を at コマンドから CGI をトリガーにキックして、指定時間に配信するように設定完了。 3. あとはブラウザを閉じようが、メシ食おうが寝ようが、その時間にメールが配信される。 これじゃダメなんでしょうか?

その他の回答 (1)

noname#25358
noname#25358
回答No.2

 極論からいって、「CGIはそのようなものではない」というのが答えです。  CGIは「閲覧者の返答に答えるだけ」のものですので、タイマーをセットするのはCGIの範疇外です。  あなた自身が決まった時間にボタンを押す、とか、あなた自身が使っているパソコンにタイマーをセットしておき、時間になると自動的に特定のURLにアクセスする、というプログラムとかなら可能です。  ただし後者は、その時間にパソコンが起動されている必要がありますし、フレッツなどの常時接続環境が必要です(無人でインターネットにアクセスするわけですので)。