Zend_Mailは非常に便利ですが、全角の送信者名や受信者名が文字化けします。
原因は、 送信者名や受信者名をUTF-8からISO-2002-JPに変換した後、それをsetFrom及びaddTo関数の引数として渡すことにより生じています。
setFrom,addTo関数では、その内部で_filterName関数によりサニタイジングしていますが、その内容は
protected function _filterName($name)
{
$rule = array("\r" => '',
"\n" => '',
"\t" => '',
'"' => "'",
'<' => '[',
'>' => ']',
);
return trim(strtr($name, $rule));
}
ですので、ISO-2002-JPでは、バケバケ文字の出来上がりとなります。
とりあえず、送受信者名のサニタイジングは事前に自前で処理し、 _filterNameはコメントアウトして文字化け対策は完了です。
0 件のコメント:
コメントを投稿