人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PhP4.2 mysql4 に関して

どうしても文字化けします。
ページを表示させた際にメールを送ろうと思います。ロリポップを使っています。
test.phpにアクセスした際にtest@test.co.jpさんにメールを送ろうと思います。

(test.php)
????????????????????????
$to="aaa@aaa.co.jp";
$subject="テスト送信";
$message="ただいまテストメール";
$add_header="From:test@test.co.jp";

$subject = urlencode(mb_convert_encoding($subject, 'sjis', 'auto')) ;
$message=urlencode(mb_convert_encoding($message, 'SJIS')) ;
var_dump(mb_detect_encoding($subject,'auto'));
var_dump(mb_detect_encoding($message,'auto'));

if(mb_send_mail($to,$subject,$message,$add_header)){
print"メール送信したよ";}else{
print"メール失敗";}
????????????????????????

test.phpには
????????????????????????
string(5) "ASCII" string(5) "ASCII" メール送信したよ
????????????????????????
と表示されます。つまり、ASCIIのコードになっていまいます。これが文字化けの原因かな?と思うのですが。どうやってEUCに変えればいいでしょうか?

お願いします。

●質問者: rrr3
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:AAA ASCII co.jp MESSAGE PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● KUROX
●35ポイント

■PHPでメールを送るサンプル例

http://masago.kir.jp/php20030617.php

--------------------------

$subject = urlencode(mb_convert_encoding($subject, 'sjis', 'auto')) ;

$message=urlencode(mb_convert_encoding($message, 'SJIS')) ;

ここで、urlencodeをしては駄目だったと思います。

urlencodeは、URLに対して行われるエンコードで、

メールの場合は違います。

#たぶん、コードを取るだけでOK。

メールのエンコードは

http://homepage1.nifty.com/glass/tom_neko/web/web_03.html

です。ヘッダー部分と本文とは違うエンコードがされます。

◎質問者からの返答

ありがとうございます!やってみます。


2 ● tezcello
●35ポイント

> test.phpにアクセスした際にtest@test.co.jpさんにメールを送ろうと思います。

質問文のソースを見ると、test@test.co.jpさん名でaaa@aaa.co.jpさんへ送るのですね。


ASCII になってしまっている原因は、urlencode() でしょうね。

http://jp2.php.net/manual/ja/function.urlencode.php

引数を可読可能な文字(要するにASCII)に変換してしまうわけですから。


そもそもメールを mb_send_mail() で送るのなら、urlencode() は不要です。

mb_send_mail() は、引数は内部エンコードであると解釈しますから、mb_convert_encoding($subject, 'sjis', 'auto')

と sjis に変えるのではなく、内部エンコード(質問内容からして EUC でしょうか?)にする必要があります。

◎質問者からの返答

すばらしいです。

ご回答ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ