- ベストアンサー
PHPをつかったメール送信時の文字化け
OS :FreeBSD4.8 PHP4.3.2 Apache2 を使用してるものです。 PHPでメール送信のフォームを作成して実際に送ってみるとサブジェクトがどうしても文字化けします。 $subject = i18n_mime_header_encode(i18n_convert($subject, "JIS")); mail($too, $subject, $memo, $ff.$from); 上記のように変換コード関数をいれると Fatal error: Call to undefined function: i18n_mime_header_encode() in /usr/home/mmiyagi/htdocs/send.php のようにエラーがでます。 php.ini設定不足でしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
$subject2 = '=?ISO-2022-JP?B?'.base64_encode($subject).'?='; 私は、こうやってます。 文字化けしませんよ、試してみてください
その他の回答 (3)
- youki64
- ベストアンサー率33% (3/9)
#2のkat338さんのに補足です。 $subject = '=?ISO-2022-JP?B?'.base64_encode(mb_convert_encoding($subject,"JIS")).'?='; ちなみにphp.iniの設定ではなく、単にi18n_mime_header_encode()を対応していないPHPバージョンなので、エラーが出たんだと思います。
- umota
- ベストアンサー率46% (150/324)
私の場合 そのまま mb_send_mail() を使ったら subject の文字化けがなおりました。 (rhl 8.0 Apache2.0.46 php-4.3.2 クライアント Outlook Express)
- selenity
- ベストアンサー率41% (324/772)
mb_encode_mimeheader()では、駄目ですか? http://jp.php.net/manual/ja/function.mb-encode-mimeheader.php もし、これでもだめなら、マルチバイト機能自体が無効な状態である可能性があります。 http://jp.php.net/manual/ja/ref.mbstring.php を読んで、再コンパイルしてみましょう。