[PHP-users 16373]Re: mailto送信時の文字化け

HAMAI Kyoichi k-hamai @ pb.jp.nec.com
2003年 7月 2日 (水) 17:24:52 JST


濱井です。
2003/07/02 15:34:08 +0900に"KiyohitoTanaka"さんが送られた
メールに関する返信です。

>PHPにて
><a href="mailto:add @ domain?subject=タイトル&body=本文">メール送信</a>
>というHTMLスクリプトを表示させてメール送信機能を行おうとしています。
>ところが、実際にページを表示させ、クリックするとメールソフト(OUTLOOK2000)は
>立ち上がってくるのですが、タイトルと本文部分が化けてしまいます。
>タイトル、本文共に通常は日本語です。また、ページの文字コードはEUC-JPです。
>
>文字コードの違いでこのような現象が発生していると予測を付けて
>mb_convert_encode関数を使ってEUC-JPをSJISに変換してやってみるのですが
>うまくゆきません。

メールの場合、ヘッダと本文ではエンコード方法が違います。
日本語の本文は単にISO-2022-JP(いわゆるJISコード)を使えばいいですが、
ヘッダの場合、MIMEヘッダと呼ばれるものを使います。
日本語のMIMEヘッダでは、ISO-2022-JPをさらにB64等でエンコードします。
MIMEヘッダに対応していないメーラーでは、"Subject: Re: =?ISO-2022-JP?B..."
というような表示がなされます。

上記の場合は、href属性の値として指定するので、タイトルや本文をさらに
URLエンコードする必要があります。



PHP-users メーリングリストの案内