Tracのメール機能を活用してみる
仕事に役立てようとTracを導入したのですが、特定の人だけに利用が集中してメンバー全体に浸透出来ていませんでした。みんなに使ってもらうために「チケットをRSSリーダーで購読すると便利ですよ。」とか提案したりしましたが、実際に試してくれるのはほんの一部で、なかなかうまく行きませんでした。
そこで、今度はTracのメール通知機能を試してみたのですが、意外といい感じだったのでご紹介します。チケットが登録・変更される度に「報告者」と「担当者」と「関係者」にメールが送信されるので、ほとんど強制的にTracのチケットを読ませることができます。それによって、徐々に利用率が上がってきたような気がします。
Pluginのインストール
メール通知機能を使用するにあたり役立つかもしれないプラグインを紹介します。
NeverNotifyUpdaterPlugin
チケットの更新者へのメール送信を止めます。チケットの更新者にまでメールが送られると、煩わしいというクレームが出たので導入しました。NeverNotifyUpdaterPlugin - Trac Hacks - Plugins Macros etc. - Tracからインストールして下さい。他のPluguinと違いtrac.iniで有効にする必要はありません。
iso-2022-jpで送信する
メールを携帯に送ると文字化けすると苦情が出たので、iso-2022-jpで送るようにしました。trac 0.11 でメール送信 — takanory.netを参考にnotification.pyを書き換えましたが、メールの本文に半角カナなどが含まれるとエンコードエラーが発生してメールが飛ばなかったので以下のようにencodeの引数にreplaceを追加しました。これにより、エンコードエラーとなる文字は"?"に置換されて送信されます。
self._charset.input_charset = 'utf-8' pref = self.env.config.get('notification', 'mime_encoding').lower() if pref == 'iso-2022-jp': self._charset = Charset('iso-2022-jp') elif pref == 'base64': self._charset.header_encoding = BASE64 self._charset.body_encoding = BASE64 self._charset.output_charset = 'utf-8' : : # sanity check if self._charset.input_charset == 'iso-2022-jp': body = unicode(body, 'utf-8').replace(u'\uff5e', u'\u301c') body = body.encode('iso-2022-jp', 'replace') elif not self._charset.body_encoding: try: dummy = body.encode('ascii')
SVNのコミット時にメールも送信する
TracとSVNの連携についてはTrac&Subversion連携: 気の向くままに・・・などを参考に下さい。ただし、記事のままだとメールは送信されませんでした。フックスクリプトの中でキャッシュフォルダの環境変数を設定することで、メールの送信も行えるようになります。
#!/bin/sh REPOS="$1" REV="$2" export LANG=ja_JP.UTF-8 export PYTHON_EGG_CACHE=/var/www/eggcache /usr/local/bin/python ${REPOS}/hooks/trac-post-commit-hook \ -p "/var/tracdata/trac/(projectname)" \ -r "$REV"
/var/www/eggcacheの部分は各自の環境に合わせて書き換えて下さい。
Trac.iniを設定する
私の設定はだいたい以下のような感じです。SMTPサーバー関連の設定については各自に環境に合わせて書き換えて下さい。
[notification] smtp_enabled = true smtp_server = mail.example.com smtp_from = notifier@example.com smtp_replyto = myproj@projects.example.com always_notify_reporter = true always_notify_owner = true always_notify_updater = false use_public_cc = true mime_encoding = iso-2022-jp
職場にTracを導入したけどイマイチ使われていないと、お悩みの方はメール通知機能を一度試してみてはいかがでしょうか?