mb_encode_mimeheaderの罠
調べてみると意外とポピュラーな話らしいのですが、mail()関数で subject に値を設定する時にmb_encode_mimeheader()関数をずっと使っていたのですが、internal_encodingの設定内容によっては不可解な現象が発生するようです、簡単に言えば文字化けですね。
こいつに出くわし、解決に結構時間をとられてしまった。
結局のところは下記の修正で解決
〔変更前〕
mb_encode_mimeheader(mb_convert_encoding($subject, ‘SJIS-WIN’, ‘UTF-8′, ‘ISO-2022-JP’)
〔変更後〕
“=?ISO-2022-JP?B?”.base64_encode(mb_convert_encoding($subject, ’SJIS-WIN’, ‘UTF-8′)).”?=”
うーん、 mb_encode_mimeheaderは使わない方がよいかな...