[PHP-users 18446] Re: (????)

Youichi Iwakiri yiwakiri @ st.rim.or.jp
2003年 10月 15日 (水) 13:29:57 JST


北野 健次 wrote in <AJEELKPCAMDALFCPCDHNIEGPCAAA.kitano @ scram.ne.jp> :
>エラーを出すときの条件として、メール送信者の名前に日本語を使用し、姓と名の
>間に半角スペースが入っているときに、RFC822.phpの190行目でエラーと表示されて
>正常終了しません。
>名前に英語名記している場合、半角スペースではなく全角スペースの場合には、問題
>なく動作します。

半角/全角は関係ないと思いますが、
Mail_RFC822::parseAddressList()は、RFC822に準拠していない
ヘッダが与えられるとエラーを出力します。
$structure=Mail_mimeDecode::decode($params)
の結果、

例えば、あなたのメールのヘッダですが、
From: =?iso-2022-jp?B?GyRCS0xMbhsoQiAbJEI3cjwhGyhC?= <kitano @ scram.ne.jp>
は下記の様に変換されます。
From: 北野 健次 <kitano @ scram.ne.jp>
      ^^^^^^^^^
      この部分が、iso-2022-jpに変換済

そうで有るため、RFC違反となります。
#Mail_RFC822::parseAddressList()の引数として渡すとエラーになる

>下記サンプルをHPより使用しています。
>
>$params['decode_headers'] = true;

$structure[0]->personalをまったく見ないのであれば、
上記の記述を
>$params['decode_headers'] = false;
にすれば、問題はありません。

mimeDecodeにデコード処理をさせるならば、、Mail_RFC822::parseAddressList()を
使わずにデコード済みのFromヘッダから必要な要素を取り出す関数を自分で書くか、
あるいは、デコードは行わせず、Mail_RFC822::parseAddressList()の返す値を
自身でデコードすることになります。

-- 
Youichi Iwakiri



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