[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 メーリングリストの案内