HTMLメールにすると、アウトルックなどPCのメーラーではOKなのですが、
YahooメールなどのWebメール系で日本語が文字化けしてしまいます。
大変困っております。どなたかご教授いただけないでしょうか?
<文字化けする言葉>(例)◇弊社からの情報の配信停止をご希望される方は、文末よりお手続きください◇
<文字化け例>$B!~J@ pJs$NG[?.Dd;_$r$44uK>$5$l$kJ}$O!"J8Kv$h$j$*
※どうも utf-8 と誤認識されているみたいです。手動でiso-2022-jpにすると
正しく読み込みます。
------以下プログラム------
$header['MIME-Version']="1.0";
$header['Content-type']="multipart/alternative; boundary=00001"
$to="ebisayu@yahoo.co.jp";
$html=mb_convert_encoding($BODY_PC_i, "ISO-2022-JP", "EUC-JP");
------以下HTMLメール抜粋------
--00001
Content-Type: multipart/related; boundary="0-497915731-1308573921=:93868"
--0-497915731-1308573921=:93868
Content-Type: text/html;
charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=iso-2022-jp">
....以下省略
以上、よろしくお願いいたします。
これでもだめですか?
mb_convert_encoding($BODY_PC_i, "ISO-2022-JP", "auto");
(例)
※¥は半角にしてください。
$recipients = 'to@example.com';
$headers = array(
'From'=>'from@example.com',
'To'=>$recipients,
'Subject'=>mb_encode_mimeheader( 'テスト', 'ISO-2022-JP' )
);
$body = mb_convert_encoding( 'これは¥nテストです。', 'ISO-2022-JP', 'auto' );
$mailobject->send( $recipients, $headers, $body );
■ダメならここも参考にしてみてはどうでしょうか?
http://techblog.ecstudio.jp/tech-tips/mail-japanese-advance.html
本文の文字コードを変換してやるといいと思います
$body = mb_convert_encoding($body, "ISO-2022-JP", "auto");
コメント(0件)