[PHP-users 33664] Re: PEAR :: Mail_mimeDecode におけるマルチパートの取り出しについて

Masaki Hojo houjo @ emplex.co.jp
2008年 6月 17日 (火) 09:01:14 JST


北條(itam)です.こんにちは. % 2008/06/17 08:26:32 JST

 ささやかな情報ですが.

Omori <toshi @ asama.net> さん wrote
in "[PHP-users 33662] Re: PEAR :: Mail_mimeDecode におけるマルチパートの取り出しについて":

>> > > mimeDecode.phpの454行目付近の
>> > > $splitRegex = '/([^;\'"]*[\'"]([^\'"]*([^\'"]*)*)[\'"][^;\'"]*|([^;]+))(;|$)/';
>> > > を
>> > > $splitRegex = '/([^;\']*[\']([^\']*([^\']*)*)[\'][^;\']*|[^;"]*["]([^"]*([^"]*)*)["][^;"]*|([^;]+))(;|$)/';
>> > > とすることでうまく処理されているような気がしますがどうも正規表現は苦手で
>> > > 正解かどうかもわかりません。

 この問題はもう数年前からですね.
 boundaryはこれでうまく行きますが,この修正では添付ファイルは化けること
があります.

>> 了解しました。が、だいぶ英語が苦手なのでどなたか代わりに
>> レポートしていただけるととても助かります。_o_

 とりあえず,バグレポートする前に,既に出ているバグレポートを全部読んだ
方がいいと思います.cipriano氏が忙しいのか,修正される気配が全然無いです
ね.

 Mail_MimeはRFC2047/RFC2231 Fullサポートですが,Mail_mimeDecodeは
RFC2047はサポートしているつもり/RFC2231はサポートしていないという状況で,
添付ファイル名に日本語を使っている場合には,素のMail_mimeDecodeでは化け
てしまうことが良くあります.
 結論だけ言うと正規表現でどうにかしようとしてもできるものではありません
というのが実際ですね.
 今問題にしているのがboundaryだけなら日本語が入ることはないと考えていい
と思いますので,上記の修正で良いと思います.この問題自体既にバグレポート
も上がっているので,さらに上げる必要もないとは思います.

 会社では,本体に手は入れたくないので,継承してメソッドをオーバーライド
して対応しています.
--
北條 正樹 itam @ itam.jp http://itam.jp


PHP-users メーリングリストの案内