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

php4.2

PHPを使ってメールを送ろうと思います。
下記で文字化けします。
どのように文字化けをしないよう設定すればいいですか?

header("Location: mailto:tsts@jp?subject=てすと");

※本文に日本語を入れたいです。具体的に教えてください。

おねがいします

●質問者: rrr3
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP メール 文字化け 日本語
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● ctrl-v
●27ポイント

サイトの文字コードがUTF8の場合です。

$content="本文";
$from="送信元";
mb_language("Japanese");
$content = mb_convert_encoding($content, "jis", "utf8");
$subject = mb_convert_encoding("テスト", "jis", "utf8");
$subject = base64_encode($subject);
$subject = "=?iso-2022-jp?b?".$subject."?=";
mail("foo@foo.com",$subject,$content,$from);

http://hatena.ne.jp

◎質問者からの返答

どもです。もう少し解説おねがいします。

これをどうやってメールとリンクさせるんですか?

フォームを使って送信すると言う意味ですか?

フォームじゃなくて、

「ココからメール」にリンクしたいです。

おねがいします


2 ● yamamototomimi
●26ポイント

「てすと」のところを、rawurlencodeで囲って、

header('Location: mailto:tsts@jp?subject='.rawurlencode('てすと'));

って書いてみるのではだめでしょうか?

http://jp.php.net/rawurlencode


3 ● taitotky
●27ポイント

mb_http_output( "SJIS" );

設定かつ、件名はURLエンコードする。

http://q.hatena.ne.jp/

◎質問者からの返答


4 ● gekikawa
●10ポイント

文字化けの前に...


mailto:を使ってメーラーを起動させるというのは

HTMLの世界の話で、PHPのheader()とは無関係です。

(というか関係させちゃだめです。)


メーラー起動の為にはSJIS保存の.htmlファイルならば

<a href="mailto:tsts@jp?subject=件名&body=本文">ココをクリック</a>

とするとIEではおそらくうまく出来てしまうと思います。

(FireFoxでは駄目だと思いますが...)

ただ上の場合も件名と本文のところは、日本語をそのまま入れるのではなく、

URLエンコード処理したものを使うのが正しいとされています。

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

あと、質問と回答者の間にすれ違いがありそうなので、ちょっと

勝手にまとめさせて下さい。

質問は「PHPにメールを送信させたい(サーバーの機能を使ってサーバーからメールを送信する)」

なのか「リンクをクリックするとクリックした人のメーラーが起動する(メールはクリックした人が送る)」

なのかちょっとハッキリしません。

(私は後者かと思いました。)


回答者の1,3さんは前者と捉えて回答されていますよ。

関連質問


●質問をもっと探す●



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