Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: filter/apachcache.pl (Re: namazu-2.0.13pre4.tar.gz)
寺西です。
Tadamasa Teranishi wrote:
>
> "Komai @home" wrote:
> >
> > >どのようなデータを処理した場合、Base64 の文字列が切り出されてしまって
> > >いるのでしょうか?
> > 例えば、以下のようなメールです。
> > もしかして、メーラの仕様の方が問題なのかもしれませんが。。
>
> 提示されたデータでは、きれいさっぱり削除されましたが。
> # もっとも、テストにならないようなデータなので、再現性のあるデータ
> # を提示していただかないと何とも。
調査の結果、Base64 の文字列が残る理由は次のようなものでした。
マルチパートのデータではなくて、
Content-type が application/octet-stream のメールであることが
わかりました。Content-type のチェックは multipart 以外はしていない
ため、Base64 の内容をメール本文(plainテキスト)と誤認して処理して
いました。
Namazu(mknmz) で処理するのであれば、
1. Content-type の指定のない、本文が plain テキストのメール
2. Content-type が text/plain であるメール
3. Content-type が multipart の場合は、text/plain のパート
だけで良いと思われるので、Content-type が指定されており、text/plain、
multipart 以外はばっさりと削除するように以下のパッチを作りました。
--- mailnews.pl Mon Apr 23 18:09:38 2001
+++ /usr/local/share/namazu/filter/mailnews.pl Sun Aug 3 13:25:02 2003
@@ -120,6 +120,9 @@
# contributed by Hiroshi Kato
<tumibito@xxxxxxxxxxxxxxxxxxx>
$partial = $1;
util::dprint("((partial: $partial))\n");
+ } elsif ($line !~ m!text/plain!i) {
+ $$contref = '';
+ return;
}
} elsif ($line =~ /^(\S+):\s*(.*)/i) {
my $name = $1;
小舞さんにテストしてもらった分には良好の結果となっています。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E