福祉支援サービス コミル

コミルは障害をお持ちの方の生活をモノの工夫によって豊かにすることをお手伝いします。

福祉支援サービス コミル

コミルは障害をお持ちの方の生活をモノの工夫によって豊かにすることをお手伝いします。

作成日:2010/11/15
タグ:, ,

メールでスケジュール管理

コマンドラインでスケジュール管理 の続きです。

lsch.rb をライブラリとしてメールインターフェースを被せました。

携帯電話などでコマンドメールを送ることにより、スケジュールの閲覧、登録、検索が出来ます。

コマンドメールの書式は以下。

スケジュールの閲覧

題名:[開始日[#終了日]]
本文:なし

スケジュールの登録

題名:[開始日[時][#終了日[時]]]
本文:
 1行目     概要
 2行目     場所
 3行目以降 詳細

スケジュールの検索

題名:なし
本文:検索文字列

日時の書式

*[-]a          a日後
               a日間
               a時間
a[a]           a日,a時
a[a]bb         a月b日
               a時b分
a[a]/b[b]      a月b日
a[a]-b[b]      a月b日
a[a]:b[b]      a時b分
a[a]bbcc       a月b日c時
a[a]/b[b]/c[c] a年b月c日
a[a]-b[b]-c[c] a年b月c日
a[a]bbccdd  a月b日c時d分

プログラムの本体部分 mailsch.rb のソースは以下。

適宜以下各変数の値を変更して下さい。

iCalFile
iCalファイルのパス
CmdAddress
コマンドメールのメールアドレス
AllowAddress
コマンドメールを許す送信元アドレス

AllowAddressに列記されたアドレス以外からのコマンドメールは無視し、また必ずコマンドメールの送信元に結果メールを送ります。 こうすることで、第3者からの操作を防ぎます。

メールサーバがコマンドメールを受け取った時に、この mailsch.rb を呼び出す仕組みを作ります。

うちのサーバは postfix を使っているので、postfix の拡張アドレス(アカウントの後に任意の語句を"+"で繋いでメールアドレスを作れる機能です。Gmailにも同様の機能がありますね。)を用いています。

メールサーバ上の自分のホームディレクトリに、

"|IFS=' ' && exec ~/bin/mailsch.rb || exit 75 #myaccount"

の内容のファイル .forward+sch を作り、先の mailsch.rb および lsch.rb を ~/bin/ に置きます。 もちろん、パーミッションは適切に設定しておいて下さい。 特に、iCalファイルは HTTPサーバの実行ユーザー、mailschを使うユーザーどちらからも読み書き出来るパーミッションでないといけません。 かつ、anyone writable な設定は大変危険なので避けて下さい。 私は、iCalファイルを groupe writable にして、私のアカウントをHTTPサーバ実行ユーザーのグループに加えています。

こうすると、myaccount+sch@mydomain.com にコマンドメールを送ることで、スケジュール管理が出来るようになります。

blog comments powered by Disqus