phpの pearを使ってメール送信プログラムを作っています。


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">
....以下省略

以上、よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/06/29 17:00:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:ric-m No.1

回答回数8ベストアンサー獲得回数0

ポイント100pt

これでもだめですか?

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

id:km1981 No.2

回答回数429ベストアンサー獲得回数49

ポイント100pt

本文の文字コードを変換してやるといいと思います

$body = mb_convert_encoding($body, "ISO-2022-JP", "auto");

http://www.phpbook.jp/pear/pear_mail/index5.html

コメントはまだありません

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

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません