PHPを使ってメールを送ろうと思います。
下記で文字化けします。
どのように文字化けをしないよう設定すればいいですか?
header("Location: mailto:tsts@jp?subject=てすと");
※本文に日本語を入れたいです。具体的に教えてください。
おねがいします
サイトの文字コードが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);
「てすと」のところを、rawurlencodeで囲って、
header('Location: mailto:tsts@jp?subject='.rawurlencode('てすと'));
って書いてみるのではだめでしょうか?
文字化けの前に...
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さんは前者と捉えて回答されていますよ。
どもです。もう少し解説おねがいします。
これをどうやってメールとリンクさせるんですか?
フォームを使って送信すると言う意味ですか?
フォームじゃなくて、
「ココからメール」にリンクしたいです。
おねがいします