Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: multipart内のファイルのインデックス化
寺西です。
Yukio USUDA wrote:
>
> > > ・標準ではbase64は無視し、デコードしたい場合はオプションで
> > > 指示するほうがよい?
>
> quated-print部分はMIME::QuatedPrintがあればデコードすることにしました。
> base64部分はMIME::Base64があっても通常では無視することにしました。
ん? このように動作する意味は何かあるのでしょうか?
(base64 と quated-print を区別する意味)
添付ファイルの展開は、デフォルト禁止で、スイッチを入れれば
展開可能というのが良いかなと思っていたのですが...。
> > > ・画像等はデコードせずに無視するほうがよい?
> とりあえずContent-Typeが image/* のものだけは常に無視することにしました。
>
> 以上の修正をしてHEADにcommitしました。
少し中身をみて気になった点をあげておきます。
1. $has_base64 が undef の場合、base64_filter, quotedprint_filter を
を通った後、$body が空になりますが、そのまま後の処理に流れて
しまっています。この結果、中身が空にもかかわらず nesting_filter
が呼び出されているようです。呼び出し先でエラーになるので、
実害はないのですが、$body が空の時点で skip した方が良いのでは
ないかと思います。
2. 添付ファイルのファイル名の扱いについて、現状はそのまま使って
(nkf でデコードされた結果)いますが、実はここは結構やっかいな
ところです。
現状の処理は妥当だと思いますが、おそらく将来、ファイル名が
正しくないといった問い合わせが来ることでしょう。
(それどころか、ファイル名を後のフィルタが使うので、重要かも
しれない)
日本語のファイル名に関しては RFC で決まる前に、
いろいろなエンコード方式のメーラが普及してしまっているからで、
きちんと処理するのは結構面倒です。
ちなみに 1行で表現できない長い文字列の場合は、複数行に分割され
ることもあります。
少々古い内容ですが、
http://www.emaillab.org/essay/japanese-filename.html
に、詳しい説明があります。
--
=====================================================================
寺西 忠勝(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