
お問い合わせメールフォームを作りました。
一部のお客様からのメールが部分的に文字化けします。
==========
E月E6日に宿泊させてぁEだきました�
そE際E対応でどぁEても納得できなかった為メールしました�
==========
メールフォーム自体は UTF-8 でエンコードしていて、メール送信の際に JIS にしています。
==========
<?php
mb_language("Japanese");
mb_internal_encoding("utf-8");
[snip]
$from_name = mb_convert_encoding($from_name, "JIS", "UTF-8");
$from_name = '=?ISO-2022-JP?B?'.base64_encode($from_name).'?=';
$body = mb_convert_encoding($body, "JIS", "UTF-8");
[snip]
$mail_true = @mb_send_mail($mailto, $subject, $body, $additional_headers);
[snip]
No.1ベストアンサー
- 回答日時:
mb_language("Japanese");
mb_internal_encoding("utf-8");
を指定していますからmb_send_mailの第3引数まではphp側がutf-8→iso-2022-jpの変換を行います。なので$bodyを自前でmb_convert_encodingしているのは『余計な処理』です。utf-8として「おかしい」文字はそのままかもしれませんが、utf-8→iso-2022-jpが可能だった部分は変換されてしまいます。
$body = mb_convert_encoding($body, "JIS", "UTF-8");
この処理を外してみてください。
なお第4引数(自動変換の対象外)の$from_nameもmb_encode_mimeheaderを使って
$from_name = mb_encode_mimeheader(mb_convert_encoding($from_name, "JIS", "UTF-8"));
とすべきです。
#出来れば他のライブラリ(JPHPMailer)を使う方がいいんですが・・・
返信が遅れ申し訳ありません。
ご教示いただいた修正をして、テストメールを送ってみました。
結果は文字化けしませんでした。
ただ、私の環境では修正前でも文字化けしなかったので、
他の環境で文字化けするか、まだわかりません。
ご回答ありがとうございました。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字コードを変換したURLを作成...
-
文字化け変換方法
-
phpのメールフォームの完了画面...
-
mb_ereg_replaceに関して
-
Gmailへのメール送信で文字化け
-
PHP+Postgres 「髙」が文字化け
-
PHPのsendmailでの文字化けにつ...
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
【VBA】エクセルで最後の不要な...
-
Excel関数「COUNTIF」で”文字”...
-
テキストボックスの回転
-
エスケープ文字の復帰(¥r)と...
-
C++で空Enterの入力を判...
-
ファイルから読み取った改行文...
-
文字の入力で横バー上段、中断...
-
カンマの含まれる文字列の数値...
-
テキストファイルから改行コー...
-
VBAで英数字入力チェックしたい。
-
VBAでCSVをExcelに取り込む時に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
PHP cURLでPOSTした値が文字化...
-
PostgreSQLからCSV形式でエクス...
-
PHPでの文字列置換について
-
SQL Serverで文字コードUTF-8
-
文字変換
-
記号全削除のクラスを作成したい
-
mb_send_mail()関数のタイトル...
-
postの文字化け防止について
-
SJISで取得した半角カナをUTF-8...
-
UTF8メールがLotus Notesで文字...
-
mb_send_mailの2重投稿を防止し...
-
日本語混じりの文字列の語数制限
-
10文字以降は非表示にしたいん...
-
SJIS→UTF-8変換後の文字化けに...
-
multipart/form-dataの文字化け
-
メール送信プログラムで特定文...
-
mysql登録時の文字化け
-
Warning: mb_strpos(): Unknown...
-
mb_ereg_replaceに関して
おすすめ情報