¥を削除する対策や、mb_internal_encoding('SJIS')をしているのに、なぜでしょうか?
文字コードを変更するなどの対策方法ではないものでお願いできますと幸いです。
http://jp.php.net/mb_send_mail
mb_send_mail() は、email を送信します。
ヘッダと 本文は mb_language() の設定に基づき変換、 エンコードされます。
http://jp.php.net/manual/ja/function.mb-language.php
言語とその設定は、Japaneseの場合はISO-2022-JP/Base64、
uniの場合は UTF-8/Base64、Englishの場合はISO-8859-1/quoted printableです。
上記にありますように mb_send_mail は mb_internal_encoding ではなく、mb_language に基づきます。
mb_languageはsjisに対応していませんので、ベースとしている文字コードの変更はダメという事であれば、送る直前でUTF-8などへの文字コード変換を行う必要があります。
mb_send_mail()はmb_language()やmbstring.languageで日本語(ja,Ja,japanese,Japanese)にしている場合,
mb_internal_encoding()やmbstring.internal_encodingの指定文字エンコードからISO-2022-JPに変換をします.
これは内部で固定の実装なのでmb_send_mail()を使用する限り回避できません(関数の処理をC言語レベルで変更したら別ですけど)
Shift_JISなメールを送信したい場合,自前でmb_send_mail()相当の処理を実装する必要があります.
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?vi...
>纊がどうしても文字化けします。
2バイト目に0x5Cを持つ文字の問題のように思います。
http://ja.wikipedia.org/wiki/Shift_JIS
>¥を削除する対策
とあるのでこのような処理でShift_JISを理解していないと
纊のコード0xfa5cから¥の0x5cを無条件に取っ手しまって
0xfaとしているのではないかと思います。
mb_send_mailに渡す前に文字化けが発生していないか
確かめてみてはどうでしょう。
以前調べたのですが、mb_send_mail前には文字化けは発生しませんでした。