MailArchivePluginでHTMLメールをなんとかしたい。

TracLightning 2.2.5でMailArchivePluginを使い始めました。
知ってはいたんだけど、使ったのは今日が初めてです。いいですね。hirobeさん、ありがとう。

でも、HTMLメールも混じってたりするので、この辺をなんとかしたい。
ソースを見てみるとコメントに書いてあるのでその内対応してくれるのかな?って期待もありつつ、
とりあえず何とかする方法を考えてみた。
1.html部をテキストメール化
2.html部を(添付)ファイル化して、ブラウザで読ませる
3.multipart/alternativeならtext/plainを優先して取り込む(text/htmlの方は捨てる)
4.先にtext形式に変換しておく
5.メーラでテキストメール化してForward

まぁ、4.5.はないとして、2.3.を試す。
あ、それと、multipartとかだと最後のパートしか残らなかったりしたので、それも何とかしたい。

ソースを読む。

わかったこと
1.添付ファイルの判断はcontent-dispositionにfilenameまたはname属性?が指定されていること
2.multipart内を走査するforの中で'body = xxx'としているので最後のパートしか残らない。

やったこと
まず、'text/html'のelif部を削除して、htmlは全部添付ファイル化する。

'text/plain'では'body = xxx'を'body += xxx'に変更。
ただし、charsetによってbodyを変換しているので、
一旦別変数にとっておいてから'body += raw_body'
見たいな感じで。

結果
htmlの添付ファイル化はできたが、開くとリポジトリブラウザみたいにソースを開いてしまう。
それにhtmlメールって言っても、textも付いてるmultipart/alternative形式だったりするので
html部は削除することにした。

なんかいい感じで動いてるっぽい。
まぁ、完全にhtmlのみのメールはダメだろうけど、
初めてのプラグイン開発(修正だけど)にしては上出来かな。

あ、これがあのTDD(他人のふんどしデベロップメント)ってやつか。

2009/07/16 追記

MailArchivePluginをハック - wadahiroの日記

すでにHTMLメールに対応してる方がいらっしゃいました。
すばらしい。その内使わせていただきます。