Zend_Mailで日本語メールヘッダを扱う

以前、https://life.co-hey.com/2008/03/zend-mailfrom.htmlという記事を書きました。

ヘッダーをエンコーディングする際の処理を変更しようという内容でしたが、
今回追記しておいた方がいいなということあったので追記です。

mb_encode_mimeheaderでは、mb_internal_encodingの文字コードと、
mb_encode_mimeheaderの第2パラメタで指定した文字コードが一致しないと
正常に変換されない場合があるようです。

なので、以下ように書いておいた方が無難ですね

mb_encode_mimeheader('"'.$name.'"', 'ISO-2022-JP')

  ↓

$encode = mb_internal_encoding();
mb_internal_encoding('ISO-2022-JP');
mb_encode_mimeheader('"'.$name.'"', 'ISO-2022-JP');
mb_internal_encoding($encode);