php4.2


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

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

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

おねがいします

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/05/15 19:00:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:ctrl-v No.1

回答回数289ベストアンサー獲得回数15

ポイント27pt

サイトの文字コードが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

id:rrr3

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

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

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

フォームじゃなくて、

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

おねがいします

2007/05/09 13:49:22
id:yamamototomimi No.2

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

ポイント26pt

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

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

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

http://jp.php.net/rawurlencode

id:taitotky No.3

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

ポイント27pt

mb_http_output( "SJIS" );

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

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

id:rrr3

2007/05/09 13:49:32
id:gekikawa No.4

回答回数110ベストアンサー獲得回数11

ポイント10pt

文字化けの前に...


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さんは前者と捉えて回答されていますよ。

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

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

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

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

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