質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

11536閲覧

【Web】指定した時間になると自動で実行する方法

nnahito

総合スコア2004

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2016/01/06 11:30

ほぼタイトルのとおりなのですが,Webサービス上で
指定した時間(例:毎日14時,毎週月曜日8時など)が来たら,
自動でプログラムを実行する方法はあるのでしょうか?

現在,簡易的な会員登録ページを作っており,そこに登録されたメールアドレスに
指定した時間になると情報を配信したいと考えております.

一応言語はPHPを使っていますが,Perl,Python,JavaScriptでも対応できます.
※Rubyだけはごめんなさい.勉強してないのでわかりません.

皆様のお知恵をお貸しください.
よろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

ログを見ると、

  • 費用の追加
  • サービスへの新規登録
  • 新規サーバー立ち上げ

は避けたいように見受けられます。

この3つを満たしたうえで定期実行する方法があります。

Googleスプレッドシート + GoogleAppsScriptを使う方法です。

Webサービス + メール配信ということから、ユーザーがGoogleのサービスを使うことは想定されていると思います。

そのためGoogle検索、GmailなどGoogleの無料サービスの使用は許容範囲と考えます。

実現する手順は以下のようになります。

  1. Googleスプレッドシートを作成する
  2. ユーザーID, 名前, メールアドレス, 配信希望のフラグなどのカラムを追加する
  3. そのスプレッドシートにメール配信用のGoogleAppsScriptを作成する
  4. スプレッドシートから配信希望がONのユーザーだけを取り出し送信するよう記述する
  5. そのGoogleAppsScriptに定期実行を設定する
  6. GoogleAppsScriptは定期実行を柔軟・簡単に設定する機能があります
  7. PHPサーバー上でユーザー登録を行う際にGoogleスプレッドシートにメールアドレスと配信希望のフラグを送信して保存するコードを追加する
  8. ユーザーが配信希望のフラグを変更するたびにスプレッドシートに情報を送信して保存する

投稿2016/01/09 10:00

popup

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

さくらインターネットのサービスプランをスタンダードに変更する事は不可能でしょうか。
外部サービスに頼るならメールマガジンのサービスを利用するのが現実解だと思います。

Re: nnahito さん

投稿2016/01/06 13:39

think49

総合スコア18164

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nnahito

2016/01/06 14:06

ご回答有り難うございます。 まずプラン変更の件ですが、趣味の運営かつ非営利ですので損が大きくなるためあまり考えておりません。 しかし機能面に優れますので、揺れている部分はあります。 次に、現在実装したい機能はメールマガジンサービスとは異なります。 会員登録したユーザの中で、メール配信が必要なユーザにのみメールを配信するという形を撮りたいと考えております。 言葉足らずで申し訳ありません。
nnahito

2016/01/07 04:57

ご回答有り難うございます。 有料サービスですか…… うむむ、このサービスに新規会員登録するのであれば、 サーバのプランをスタンダードに変更し、素直にcronを使ったほうがいいかもしれませんね……
think49

2016/01/07 11:08

無料サービスがあるか探してみてはどうでしょう。 広告付きなどで無料のサービスがあるかもしれません。 あるいは、自宅サーバを立ち上げてメールサーバにするのも良いかもしれません。 https://www.google.co.jp/search?q=%E8%87%AA%E5%AE%85%E3%82%B5%E3%83%BC%E3%83%90+%E3%83%A1%E3%83%BC%E3%83%AB&ie=UTF-8 サーバ維持費は無料ではないのでサービスプロバイダが提供するものも広告費で回収できる程度の機能しかありません。 そこをどうしても無料で利用したいのなら、自分のPCを使ったり、割り切った仕様にしたり、とそれなりに自分自身の労力をかける必要があります。
guest

0

機能一覧

ここに書いてあります。

投稿2016/01/06 12:19

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nnahito

2016/01/06 12:41

ご回答有り難うございます。 機能一覧をありがとうございます。 lucker様のご回答から、Cronと言うヒントを頂いて探してみたところ、 「Free Web Cron Service( http://www.mywebcron.com/ )」というものが良さそうだなと思いました。 これよりよいものなど御座いますでしょうか?
退会済みユーザー

退会済みユーザー

2016/01/06 15:54

自分なら、普通にCronが使えるサーバーを使います。
guest

0

サーバーのcronでPHPのコードを叩けば良いです。

投稿2016/01/06 11:39

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nnahito

2016/01/06 11:41

ご回答有り難うございます. それはレンタルサーバでも可能なのでしょうか? 現在,「さくらのレンタルサーバLiteプラン」を利用中です http://www.sakura.ne.jp/lite.html
alg

2016/01/06 12:26

Liteプランだと、cronは使えませんね。 Liteより上(スタンダード、プレミアム、…)なら使えます。
nnahito

2016/01/06 12:40

ご回答有り難うございます。 ダメですか…… では、何か代わりに良い物などございますでしょうか? Cronと言うヒントを頂いて探してみたところ、 「Free Web Cron Service( http://www.mywebcron.com/ )」というものが良さそうだなと思いました。 これよりよいものなど御座いますでしょうか?
退会済みユーザー

退会済みユーザー

2016/01/06 13:10

wp_cronみたいな方式は、メール配信だからさすがにダメでしょうね…
nnahito

2016/01/06 13:15

ご回答有り難うございます。 wp_cronとはどのようなものなのでしょうか?
退会済みユーザー

退会済みユーザー

2016/01/06 13:21

あー… やばい方法思いついた… set_time_limit(0); で、スクリプトのタイムアウトをしないようにして、 while(true){ if(指定時刻){ メール送信(); } } な、スクリプトを1回呼び出しておく。 まぁ、レンタルサーバーだからプロセスを殺す手段がなくなるのでやっちゃダメでしょうね。 socket_server組んでその中で回して、止めるときはsocket_serverに司令送るってのはやったことあるけど、レンタルサーバーじゃsocket関数使えないだろうし。
退会済みユーザー

退会済みユーザー

2016/01/06 13:24

wp_cronはwordpressの組み込み機能で、 wordpressにアクセスがあった時に指定時刻を過ぎていたら登録された処理を行う、 というものです。 だから、アクセス数が多いサイトほど正確に処理され、少なければ不正確になります。 決められた時刻にそれほど遅滞なく「必ず」送信する、というニーズには不向きです。
think49

2016/01/06 13:34

> while(true){ その方法は該当phpファイルを開き続けるブラウザが必要なのではないでしょうか。 ページを開き続ける必要があるなら、JavaScript の setInterval で監視して指定時間になったら submit する実装の方が現実的だと思います。
退会済みユーザー

退会済みユーザー

2016/01/06 13:43

>その方法は該当phpファイルを開き続けるブラウザが必要なのではないでしょうか。 レンタルサーバーだとブラウザからしかアクセス出来ないからそうなりますかね。尚更無理か。
think49

2016/01/06 13:56

ブラウザでなくてもいいですが、リクエストを投げるUAが必要なので…。 リクエストを投げるならこんな方法もありますね。 - 指定時刻になったらリクエストするプログラムをPC-Aにインストールする - PC-Aを常時立ち上げて置き、指定時刻になったらリクエストして wp_cron を誘発させる 回りくどい方法なのでPC-Aをサーバにした方が良いという意見もありそうですが。
nnahito

2016/01/06 14:11

lucker 様 wp_cronの解説ありがとうございます。 Wordpressは使用しておらず、おそらくこの機能は使えないですね…… think49 様 別サーバPCを起動する案は確かにいいかもしれません…… が、そうなると安定性が低くなりそうで少し困りますね…
退会済みユーザー

退会済みユーザー

2016/01/07 13:48

>Wordpressは使用しておらず、おそらくこの機能は使えないですね…… いや、そういうことではなく、同様のコードを書いたら良いという話ですが、 まぁ、確実性が低いので書いても無駄かもしれませんね。 あとは、あんまり調べてないんですが、例えばスマフォのRSSリーダーアプリなどで 定時指定のRSSを取得する機能があったら、 そのRSS取得先をmail送信スクリプトURLに設定すれば、 スマフォの電源が入っている限りは正確にmail送信スクリプトを走らせることができるな、とか、悪いことを考えました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問