Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

filter/mailnews.pl (MIME processing)



>                                            千葉市中央区長洲
>                                                    藤原  誠
本来は、次の参照が付くはずのものですが、埋れてしまいそう
なので、見出しからは消しました。

| In-Reply-To: <3F295BAF.3244655C@xxxxxxxxxxxxxxx>
| References: <3F28F4A0.74A5DAB1@xxxxxxxxxxxxxxx>
|	<200307311612.AA00719@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
|	<3F295BAF.3244655C@xxxxxxxxxxxxxxx>

舞 > ただ、一つ自分の我が侭もあるのですが、Boundary処理だけばっさり
舞 > やられると、添付ファイルのファイル名を検索したい!と思った時に
舞 > 困るので、そこは是非とも残してもらいたい!なんていうようにも
舞 > 思っています。

寺> また、マルチパートで添付ファイル名を残したいという話は、少し前にも
寺> ありましたが、これが結構面倒な話なんですよね。
寺> 添付ファイル名に関しては、RFC に従っていないのが普通で、メーラごとに
寺> ばらばらだったりするので、きちんとしたものを作るのが大変そうです。

添付のようなものを試して見たのですが、寺西さんの言われる通り
ですね。NMZ.fields.filename を見てもあまり取出されていなかった
です。
---
(藤原)
$NetBSD$
Index: filter/mailnews.pl
===================================================================
RCS file: /storage/cvsroot/namazu/filter/mailnews.pl,v
retrieving revision 1.27
diff -u -r1.27 mailnews.pl
--- filter/mailnews.pl	23 Apr 2001 09:09:38 -0000	1.27
+++ filter/mailnews.pl	30 Jul 2003 00:51:54 -0000
@@ -159,7 +159,18 @@
  	for $_ (@parts){
  	    if (s/^(.*?\n\n)//s){
  		my ($head) = $1;
- 		$$contref .= $_ if $head =~ m!^content-type:.*text/plain!mi;
+		my ($body) = $_;
+		if ($head =~ /filename=\"([^\"]*)\"/ ) {
+		    if ($1) {
+			$$contref .= $1 ;
+			$fields->{'filename'} = $1;} }
+		if ($head =~ /content-type: ([^\n]*)/i ) {
+		    if ($1) {
+		    ## $$contref .= $1 ;
+		    $fields->{'content-type'} = $1;
+		}}
+
+		$$contref .= $body if $head =~ m!^content-type:.*text/plain!mi;
  	    }
  	}
     }
Index: pl/conf.pl.in
===================================================================
RCS file: /storage/cvsroot/namazu/pl/conf.pl.in,v
retrieving revision 1.33.4.6
diff -u -r1.33.4.6 conf.pl.in
--- pl/conf.pl.in	22 Jul 2003 13:05:09 -0000	1.33.4.6
+++ pl/conf.pl.in	30 Jul 2003 00:51:54 -0000
@@ -71,6 +71,7 @@
 # searching.  NOTE: case-insensitive
 # 
 $SEARCH_FIELD = "message-id|subject|from|date|uri|newsgroups|to|summary|size";
+$SEARCH_FIELD .= "|filename|content-type";
 
 #
 # This pattern specifies meta tags which used for field-specified