j1987回答ポイント 130ptウォッチ 1

【PHP】メールシステムの文字コード

PHPで構築されたメールシステムで、UTF-8にて格納されたデータを取得して
メールデータを作成する部分があります。
以下のように件名や差出人・宛先をISO-2022-JPにエンコードするのですが、
何故か宛先名(name)のみがISO-8859-1(latin1)にエンコードされてしまいます。

//Subject
$subject = mb_convert_encoding($subject, "ISO-2022-JP", "UTF-8");
//FROM
$from_data['name'] = mb_convert_encoding($from_data['name'], "ISO-2022-JP", "UTF-8");
//TO・CC・BCC
foreach($send_data as $type => $data){
for($i=0; $i<count($data[$type]); $i++){
$send_data[$type][$i]['name'] = mb_convert_encoding($send_data[$type][$i]['name'], "ISO-2022-JP", "UTF-8");
}
}

最終的に生成されたメールのヘッダはコメントに記したとおりです。

宛先部分のみがループ処理を挟んでいますが(ToやCc、Bccで複数あり得るので…)、
そのあたりが怪しいのでしょうか?

上記ソースから心当たりがあれば、ご教示いただけると幸いです。
よろしくお願いいたします。

なお、PHPは5.2.13、データベースはMySQL5.1.50を使用しています。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2010-09-29 20:24:41
終了日時
2010-09-30 15:06:44
回答条件
1人3回まで

この質問のカテゴリ

この質問に含まれるキーワード

PHP7798UTF-8628エンコード551bcc68文字コード574ISO-2022-JP48データベース1894iSO276CC248

人気の質問

メニュー

PC版