カテゴリ | |
---|---|
サマリ | 新規作成したページを数日後メールしてほしい |
バージョン | 1.4.2 |
投稿者 | machaai |
状態 | 完了 |
投稿日 | 2004-01-27 (TUE) 00:39:45 |
PukiWikiを仕事の備忘録として使っています。覚えなけれ ばならないことを全て PukiWiki で一元管理しています。 しかし忘れてしまいます。。。
そこで、自分が新規に作成したページ(URL、又は、内容) を、数日後、又は、数ヶ月後に、指定した宛先にメールで 送って欲しいのです。
新規ページ作成時に、「あ、この内容1週間後にまた確認し たいな」と思った場合に使いたいのです。
このようなことは実現可能でしょうか? 少し意味合いはちがいますが、Yahoo!カレンダーのリマイ ンダー のようなイメージです。
メールじゃないとダメなんですか? TrackerプラグインでTODO管理する手もあるかと。
サーバーの管理者権限があるか、もしくはatコマンドやcrontabコマンドを実行可能な権限があれば、cronにより実行することは、原理的には可能ですが、そうでない場合は、原理的に不可能です(UNIX系サーバーの場合。Win系は分かりません)。「1週間後に誰かがWebを見たら、メールが来る」、という不確実な物でも良ければ可能ですけど。
ご回答ありがとうございます。Linux環境ですのでcronは使えます。具体的にはどのようにすればよろしいしょうか。ファイルの日付を毎日チェックし、1週間経過していればmailするといったところでしょうか。
方法としては、二通りあると思います。一つは、新たなプラグインを作成し、そのプラグインで、atコマンドを実行して、指定日時にメール送信するように設定する方法です。例えば、メールで送りたいページ内に、
#mail(username@example.com, 2004-03-01 10:00)と記述しておきます。これを処理するプラグイン(mail.inc.php)で、既に登録済かチェックの上、未登録なら、atコマンドで指定日時にsendmailを呼び出すようにする訳です。ただ、#mail の行を修正したり、削除したりした際に、atコマンドによる古い登録を削除しないといけないですが、その処理がちょっと難しいですね。二つ目は、一つ目の方法と同様に送信したいページに記述しておき、Wikiテキストのディレクトリをサーチして "#mail" と書かれた行を見つけメールを送信するプログラムを、cronで定期的(例えば毎日9:00 に)に実行する方法です。プログラムは、PHP、Perl、Ruby、シェルスクリプト、C/C++等々、お好みの言語で作れば良いでしょう。多分20行程度でできると思います。この方法では、任意の時刻にメールを出すことはできません。cronによるプログラムの実行間隔を短かくすれば良いのですが、ディレクトリの全ファイルをサーチしますので、それなりに負荷がかかります。ページ名を 「備忘録/2004-03-01 10:00」のように決めておけば、全Wikiテキストをサーチしなくて良いので、負荷をおさえることができます。
特定のページ、例えば':mail'にメール送信情報(ページ名、日付、あて先)等を集積するようにしたらどうでしょう。全くサーチしなくて良いですし、直接ページとして編集も出来ます。プラグインとしては、そのページを':mail'に登録するactionと、それ用のフォームを出力するconvertで。
いいですね。そのアイデア、頂きましょう。convertも悪くないですが、actionのみでコマンド型プラグインとし、メール送信アイコン(誰かデザインしてくれません?)をクリックするとフォームが表示される、という様にしておくと、いちいちフォームを埋め込む為のコマンドを書かなくて良いですね。また、':mail'をチェックする程度の負荷なら、メール送信のコードをPukiWiki本体に仕込んでしまって、cronが利用できない場合でも、そこそこのアクセス数があるサイトであれば利用可能なようにできますね。
みなさん、様々なご意見ありがとうございます。実現できそうで嬉しく思います。
さて、私が考えている要件をまとめてみようと思いますが、欲しいプラグインではなく、Use PukiWikiの方がいいですか? > 三浦さん
一応それらしきものが出来たようなので、お知らせします。
提案を練りつつ実験してたらなんとなく形になった、というレベルですので、実用になる(ようになるorする)のかは不明です。
なんか、横からで済みません。
お、なんか、横から作ってくれた方が。多謝。私も、作り始めてはいたのですが、まだまだですので、ARAIさん作のをブラッシュアップさせていきましょう (まだ、ARAIさん作のプラグインの中身は拝見していませんが)。結局、プラグインで実現しましたので、ドキュメントは 自作プラグイン/remind.inc.php に作成して頂けると良いと思います。改善の要望は、ARAIさんのページ に書いていただくのが良いでしょう。