[pgsql-jp: 30539] メール送信時に文字化け

キャスター マイルド caster_mild_49401219 @ hotmail.com
2003年 7月 22日 (火) 05:26:41 JST


おはようございます。
キャスターです。

redhat7.3 php-4.1.2-7.3.6 apache-1.3.27-2 sendmail-8.11.6-25.73
を使用しています。

PHPからメール送信時に、特定の文字が文字化けしてしまいます。
例えば、「申し込み」と言う文字のうち、「申」が・・・
¤Þ¤¿¡¢¡ÖͽÌó¡×¤È¤¤¤¦»þ¤Î¡ÖͽÌó¡×¤½¤Î¤â¤Î¤¬¡¢Íöá¤È¸À¤¦¶ñ¹ç¤Ëʸ»½¤±¤·¤Æ¤·¤Þ›¨Â
います。

原因を調べてはいるものの、エンコード関係かなと思うのですが、いかがでしょう
か?
宜しくお願いいたします。

元のソースは、レッツさんの所のものを使用しています。
以下に、一部省略でソースをのせます。

function mime_enc($usr_str,$mime=0){
  if(get_magic_quotes_gpc()) $usr_str = stripslashes($usr_str);//\は取る
  $usr_str = HANtoZEN_SJIS($usr_str);
  $enc = sjis2jis($usr_str);			//JISに変換
  if($mime) $encode = "=?iso-2022-jp?B?" . base64_encode($enc) . "?=";	//B
ヘッダ+エンコード
  else $encode = $enc;
  return $encode;
}

// 中略

$body = "申し込みありがとうございます。\n予約完了!\n";
$body = str_replace("\r\n", "\n", $body);	//改行文字の統一
$body = str_replace("\r", "\n", $body);
if(preg_match("/[\x80-\xA0]/",$body)){		//本文に日本語がある場合JIS変換
$body = mime_enc($body,0);
}
if(!mail($mail_address, $subject, $body, $head)){
echo "メール送信が失敗しました";
}

_________________________________________________________________
きっと見つかるあなたの新居  不動産情報は MSN 住宅で  
http://house.msn.co.jp/ 




pgsql-jp メーリングリストの案内