スケジュールをメール送信
内容
カレンダーの内容を該当日にメール送信します。具体的には、カレンダー名/YYYY-MM-DD形式のページが保存される際にコマンドがatに与えられ、YYYY年MM月DD日の指定の時間に指定のアドレスにページソースがメールで送信されます。ページが削除されるとatのキューから取り除かれます。
必要な環境
- atが使えるシステム
- wiki.cgiの実効ユーザがatを利用できること
- mail, nkf
インストール
- pluginディレクトリとlibディレクトリのファイルを設置する。
- configディレクトリにあるatschedule.datを編集し、設置する。
- 管理画面からatscheduleプラグインのチェックボックスをonにする。
ファイル構成
プラグインモジュール
- atschedule/Install.pm
- インストール用
- atschedule/HandleAt.pm
- atに処理内容を指定します。
lib以下に置くモジュール
下記のCPANモジュールを利用しています。展開したディレクトリ通りにlibにコピーしてください。
設定ファイル
atschedule.datをconfigに置きますす。サンプル:
wikiid=test command=nkf -j $^page | mail -s '$^subject' $^user sendtime=0800,0700 tagnames=カレンダー,スケジュール users=foo@example.com,bar@example.com subject=本日のお勤め,スケジュールですよ
説明
command=nkf -j $^page | mail -s '$^subject' $^user
atに渡すコマンド。$^page, $^subject, $^userは順にwikiデータへのパス、タイトル、送り先に置換されます。通常修正の必要はありません。
tagnames=カレンダー名,カレンダー名2,...
atschduleの処理対象となるカレンダー名を指定します。カレンダー名/YYYY-MM-DDが保存、削除される際に処理されます。カンマで区切ることで複数指定できます。
users=emailアドレス1,emailアドレス2,...
送信先アドレス。カンマで区切ることで複数指定でき、tagnamesでの複数指定の順番に対応します。
subject=タイトル1,タイトル2,...
メールのタイトル。カンマで区切ることで複数指定でき、tagnamesでの複数指定の順番に対応します。
sendtime=0800,0700
送信時間。hhmmで指定します。カンマで区切ることで複数指定でき、tagnamesでの複数指定の順番に対応します。
上記のサンプルではスケジュール2004-12-20は朝7時にbar@example.comにメールされます。
wikiid=ユニークな値
一つのサーバで複数のFSWikiを設置していて、同じカレンダー名を利用している場合に、識別の為に必要になります。複数FSWikiを使用していないなら特に設定する必要はありません。また、wikifarm親子間で同じカレンダー名を使っても識別に問題はありません(ただし設定ファイル自体は必要です)。
mod_perlでの利用
wiki.cgiの
if(exists $ENV{MOD_PERL}){
のところで
eval("use Schedule::At");
を加えます。
留意点
- 社内用に作ったもので、セキュリティについては考慮していません。ご利用の際は各自ご注意ください。
Link: バックリンクのテスト