= メールをTracに蓄積 - MailArchiveプラグイン = == 1. 概要 == MLなどのメールを保管し、Tracにて表示・検索するためのプラグインです。[[BR]]プロジェクトですでに使用しているMLがあり、その内容をTracで一元管理したい場合にお使いください。[[BR]]( [http://trac-hacks.org/wiki/EmailtoTracScript EmailtoTracScript] の様に、メールをチケットに投入する機能はありません。) Tracの強力なリンク機能を利用できます。たとえば、Wikiで特定のメールを示すリンクを作成したり、メールの本文に書かれたチケットの番号をリンクにしてしまうことが可能です。また、検索やタイムラインといったTracの基本機能にも対応しています。 Trac 0.9,Trac 0.10,Trac 0.11devに対応しています。 == 2. 主な機能 == * メールのインポート[[BR]]unixmail形式のメールのインポートします。添付ファイルはTracのAttachementとして管理します。[[BR]] * メールサーバからのメール受信[[BR]]pop3でサーバから直接メールを受信可能です。[[BR]] * 読み込んだメールのスレッドツリー表示[[BR]]ML名ごと・月ごとにメールをスレッド表示します。[[BR]] [[Image(http://weekbuild.sakura.ne.jp/trac/attachment/wiki/TracDoc/MailArchivePlugin/MailArc001mini.png?format=raw)]] [[BR]] * メール本文のWiki表示[[BR]]メール本文にTracのwiki構文で解釈し、リンクに変換します。 たとえばメール本文内に '' [Ticket #1 #1] '' という文字があれば、チケットの [Ticket #1 #1] へのリンクに変換します。[[BR]] [[Image(http://weekbuild.sakura.ne.jp/trac/attachment/wiki/TracDoc/MailArchivePlugin/MailArc005mini.png?format=raw)]] [[BR]] * メールの検索[[BR]]Tracの検索機能で、メールのサブジェクトと本文を検索可能です。[[BR]] [[Image(http://weekbuild.sakura.ne.jp/trac/attachment/wiki/TracDoc/MailArchivePlugin/MailArc003mini.png?format=raw)]] [[BR]] * メールのタイムライン表示[[BR]]Tracのタイムライン機能で、メールの送信日をもとにタイムラインとして表示可能です。[[BR]]チケットの登録やリポジトリのコミットと、メールの送信日をいっしょに表示することが出来ます。[[BR]] [[Image(http://weekbuild.sakura.ne.jp/trac/attachment/wiki/TracDoc/MailArchivePlugin/MailArc004mini.png?format=raw)]] [[BR]] * Wikiでリンク指定[[BR]]Tracの強力なリンク機能をメールにも適用します。Wikiにメール単体をさすリンクを指定可能です。Message-IDや、MLで良く使われるサブジェクト([aaa:001],[aaa 001]など)を リンクにします。 == 3. セットアップ == === 3.1 ダウンロード === Subversion を使用してはHTTP経由でチェックアウトしてください。コマンドラインクライアントでは、以下のようにします。(詳しくは[http://sourceforge.jp/projects/shibuya-trac/cvs/ http://sourceforge.jp/projects/shibuya-trac/cvs/] 参照) {{{ svn checkout http://svn.sourceforge.jp/svnroot/shibuya-trac/mailarchive }}} === 3.2 インストール === MailArchivePluginのインストールを行います。 === 3.2.1 Trac 0.11の場合 === ==== (1) インストール ==== zipを解凍してください。[[BR]]Trac0.11用の最新版はtrunkフォルダにあります。[[BR]]setup.pyがあるフォルダに移動してください。[[BR]]以下のコマンドを実行して下さい: {{{ $ python setup.py install }}} (bdist_eggでeggファイルを作るやり方だと、スクリプトがうまく動かないみたいです。) ==== (2) TracEnvのupgrade ==== DBにMailArchivePlugin用のテーブルを追加するために、TracEnvをupgradeする必要があります。以下のコマンドを実行してください。 {{{ $ trac-admin [TracEnvのディレクトリ] upgrade }}} ==== (3) Trac.iniの設定 ==== MailArchivePluginを使用可能にするには、Trac.iniの[components]カテゴリに以下を加えてください。[[BR]](pluginフォルダに置いた場合には不要) {{{ [componets] mailarchiveplugin.* = enabled }}} ここまでで、MailArchivePluginのインストールは終了です。メインメニューに「メール倉庫」というメニューが追加されていると思います。[[BR]]ただし、まだメールをインポートしてないので、メニューを押しても何も表示されません。[[BR]]引き続き、メールをインポートするための設定と、メールのインポートを行ってください。 === 3.2.2 Trac 0.9、0.10用の場合 === ==== (1) eggの設置 ==== zipを解凍してください。[[BR]]最新版はtrunkフォルダにあります。古いTrac用(0.9, 0.10)のものはbranchesフォルダにあります。[[BR]]使用するバージョンのsetup.pyがあるフォルダに移動してください。[[BR]]以下のコマンドを実行して下さい: {{{ $ python setup.py bdist_egg }}} distフォルダが作成されます。[[BR]]その中にある*.eggファイルを、TracEnvのplugins ディレクトリにコピーしてください。 ==== (2) TracEnvのupgrade ==== DBにMailArchivePlugin用のテーブルを追加するために、TracEnvをupgradeする必要があります。以下のコマンドを実行してください。 {{{ $ trac-admin [TracEnvのディレクトリ] upgrade }}} ==== (3) mailarchive-amin.pyの設置 ==== srcディレクトリ直下にあるmailarchive-admin.pyを、実行しやすいディレクトリ(/usr/local/binとか)にコピーしてください。 ==== (4) Trac.iniの設定 ==== MailArchivePluginを使用可能にするには、Trac.iniの[components]カテゴリに以下を加えてください。[[BR]](pluginフォルダに置いた場合には不要) {{{ [componets] mailarchiveplugin.* = enabled }}} ここまでで、MailArchivePluginのインストールは終了です。メインメニューに「メール倉庫」というメニューが追加されていると思います。[[BR]]ただし、まだメールをインポートしてないので、メニューを押しても何も表示されません。[[BR]]引き続き、メールをインポートするための設定と、メールのインポートを行ってください。 == 4. メールのインポート == === 4.1 説明 === MailArchivePluginでメールを表示・検索するには、まずメールデータをTracに取込む(=インポートする)必要があります。 メー ルをインポートするには、2通りの方法があります。unixmail形式のメールファイルのインポートと、pop3サーバからのメールの受信です。「片方 の方法だけ使う」ことも可能ですし、「最初に今までのメールをインポートしてから、今後はpop3でメールを受信する。」というような使い方をも可能で す。 '''注意:''' * メールのデータはTracEnvのデータベースに保存します。ディスク使用量に注意してください。大抵はメールのほうがTracに蓄積されたデータよりも大きいので。。 * メー ルの添付ファイルはTracのAttachmentとして保存します。Trac.iniに記載されたサイズより大きな添付ファイルは取り込み出来ません。 Trac.iniの[attachment]のmax_size(デフォルトは262,144Byte)を大きくしたほうがよいでしょう。 * HTML形式のメールは取り込み出来ません。 * マルイチなどの記号文字を取り込むためには、nkfが別途必要です。 * メールデータのユニークキーはMessage-IDです。すでにDBに同じMessage-IDのメールがDBに存在する場合は、新しく取込んだメールで上書きします。 === 4.2 設定 === Trac.iniの以下の項目を設定してください。[[BR]] '''[mailarchive]''' ||codecaliases||読み込み時のコーデック変換エイリアスをしています。変換しない場合は不要です。[[BR]]以下の書式で記載してください。メールの文字コード:pythonのコーデック名[,メールの文字コード:pythonのコーデック名]...コーデック名のところに、cmd:実行ファイルパスを書くと、外部の変換プログラムを呼び出し可能です。変換プログラムは、標準入力から入力を受け取り、標準出力に結果をutf-8で出力する必要があります。|| ||pop3_server||pop3サーバのアドレスを指定します。pop3受信しない場合は不要です。|| ||pop3_user||pop3サーバへ接続するためのアカウントを指定します。pop3受信しない場合は不要です。|| ||pop3_password||pop3サーバへ接続するためのパスワードを指定します。|| ||pop3_delete[[BR]]||pop3サーバのメールを削除するかどうかを指定します。(デフォルト:none)[[BR]]pop3受信しない場合は不要です。[[BR]]none:削除しない。[[BR]]imported:インポートできたもののみ削除する。[[BR]]all:すべて削除する。|| なお、日本では、codecaliasesにiso-2022-jp:iso-2022-jp-2004 を指定するのがお勧めです。 === 4.3 取込み方法 ==== ==== (1) メールファイル(unixmail形式)のインポート ==== あなたの手元にあるメールをまとめてインポートします。メールファイルのインポートを行わない場合は、この章は飛ばしてください。[[BR]]unixmail形式のメールをインポート可能です。[[BR]]メールを取込むには、以下のコマンドを実行してください。[[BR]]ML名には、メーリングリストの(短い)名前を指定してください。画面に表示する際に、ここで指定したML名をキーにして分類されます。[[BR]]メールの取込み状況およびエラーは、標準出力に出力されます。 {{{ $ python mailarchive-admin.py [TracEnvのディレクトリ] import [ML名] [インポートするファイルのパス] }}} 例: {{{ $ python mailarchive-admin.py /var/trac/tracenv import mailarc-ML /tmp/mail_2006 }}} ==== (2) pop3メールの受信 ==== pop3サーバからメールを受信します。pop3メールの受信を行わない場合は、この章は飛ばしてください。[[BR]]メールを受信するには、以下のコマンドを実行してください。 ^[http://weekbuild.sakura.ne.jp/#FootNote1.2 2]^ [[BR]]ML名には、メーリングリストの(短い)名前を指定してください。画面に表示する際に、ここで指定したML名をキーにして分類されます。[[BR]]メールの取込み状況およびエラーは、標準出力に出力されます。 {{{ $ python mailarchive-admin.py [TracEnvのディレクトリ] pop3 [ML名] }}} 例: {{{ $ python mailarchive-admin.py /var/trac/tracenv pop3 mailarc-ML }}} 取り込みを行うシェルを書いて、cronに設定しておくとよいでしょう。 シェルの例: {{{ #!/bin/csh source $HOME/.cshrc python /local/bin/mailarc-admin.py /var/trac/tracenvmailarc >> /var/trac/repo/log/mailarc.log }}} == 5. 使用方法 == メニューにある「メール倉庫」をクリックしてください。一番最近の月のメールがスレッド表示されます。画面右に、ML毎、月毎のメールの数が表示されます。これをクリックすると、そのML/月のメールがスレッド表示されます。[[BR]]メールを1件クリックしてみてください。メールの中身が表示されます。画面右には、同じスレッドに属するメールが表示されます。添付ファイルがあれば、画面下のAttachement欄に表示されます。 == 6. カスタマイズ == Trac.iniの以下の項目を設定することで、MailArchivePluginの動きを細かく制御することが出来ます。 '''[mailarchive]''' ||title||メニューバー、検索、タイムラインで使うMailArchiveプラグインのタイトルを設定します。(デフォルト:MailArchive)[[BR]]このサイトでは'メール倉庫’|| ||wikiview[[BR]]||メール本文を表示する場合に、wiki文法に従い変換するか否かを設定します。(デフォルト:enabled)[[BR]]disabledにすると、メール本文をテキストとしてそのまま表示します。enabledにすると、本文にwiki文法に沿った文字があると、変換します。(例えば #1 があると、チケット1へのリンクになります)|| ||replaceat||メールアドレスの@を変換する文字を設定します。(デフォルト:'_at_')[[BR]]全角の@にするのが日本では一般的?|| '''[components]''' ||mailarchive.mailarchive.NavigationContributor||disabledにすると、メニューバーにMailArchiveを表示しません。|| ||mailarchive.mailarchive.SearchProvider||disabledにすると、検索にMailArchiveを表示しません。|| ||mailarchive.mailarchive.Timeline||disabledにすると、タイムラインにMailArchiveが表示しません。|| ||mailarchive.wikisyntax.WikiSyntaxMail||disabledにすると、wiki内のmail:1 という形式の文字をメールへのリンクに変換しません。|| ||mailarchive.wikisyntax.WikiSyntaxMl||disabledにすると、wiki内の[ML名:1]や[ML名 1]という形式の文字をメールへのリンクに変換しません。|| ||mailarchive.wikisyntax.WikiSyntaxMessageId||disabledにすると、wiki内のMessage-ID:という形式の文字をメールへのリンクに変換しません。|| == 7. 開発中のソースについて == メンテナンスは、 [http://sourceforge.jp/projects/shibuya-trac/wiki/FrontPage Sibuya.trac] で行っています。svnから取得してください。 == 8. ご意見・ご要望 == ご意見・ご要望は以下から登録してください。 * Trac0.9をお使いの方は[/trac/newticket?component=MailArchivePlugin&version=Trac0.9 こちら] * Trac0.10をお使いの方は[/trac/newticket?component=MailArchivePlugin&version=Trac0.10 こちら] * Trac0.11devをお使いの方は[/trac/newticket?component=MailArchivePlugin&version=Trac0.11 こちら] これまでに登録されたものは[query:?component=MailArchivePlugin こちら]を参照してください。 --