mailto:を利用する方法

HOME > とほほのWWW入門 > メール送信フォーム設置法 > mailto:を利用する方法
1998年7月19日版

概要

HTMLさえ書ければ誰でも簡単に設置することができます。ただし、Internet Explorerがサポートしていない場合がある、ブラウザ側にメール送信機能が設定されていなくてはならないなど、制限も多いです。また、送られてくるメールは %82%A0 のように符号化(エンコード)されていますので、これを適切に解読(デコード)してやる必要があります。

設置方法

HTML文書中に次のような記述をしてください。 mailto:の後ろのメールアドレスは自分のメールアドレスに書き換えてください。

<FORM METHOD=POST
      ACTION="mailto:foo@xxx.yyy.zzz">
<BR>名前: <INPUT TYPE=text NAME="NAME" SIZE=40>
<BR>感想: <INPUT TYPE="text" NAME="TESTMSG" SIZE=40>
<P>
<INPUT TYPE=submit VALUE="  送信  ">
<INPUT TYPE=reset  VALUE="  取消  ">
</FORM>

(↑)これを表示するとこう(↓)なります。


名前:
感想:

<FORM>〜</FORM>がひとつのフォームとなります。 フォームについての詳細は「HTMLリファレンス」を参照してください。 TYPE=resetのボタンを押すと、入力したデータがクリアされます。 TYPE=submitのボタンを押すと、<INPUT ...>で入力したデータが mailto:〜のメールアドレスに送信されます。

メッセージのデコード

mailto:で送信されたメッセージは、通常、次のようにエンコードされた状態で送信されます。
    TESTMSG=%82%A0%82%A2%82%A4
<FORM ENCTYPE="text/plain" ....> のようにENCTYPE属性をつけておくとエンコードされないテキストのまま送信することができますが、メールの経路によっては文字化けしたり、別の形式にエンコードされてしまったりすることがあります。 (この方法は「シフトJIS送信」という掟破りの方法になりますので、あまりお勧めできません。)

エンコードされた文字列をデコード(読めるように)するには、次のようなツールを用います。

あまり便利ではありませんが、次のような JavaScript を記述した簡単な自作Webページでデコードすることもできます。
<FORM>
<INPUT TYPE=text NAME=t1>
<INPUT TYPE=button VALUE="変換→"
onClick="this.form.t2.value=unescape(this.form.t1.value)">
<INPUT TYPE=text NAME=t2>
</FORM>

Copyright(C) とほほ ( http://www2e.biglobe.ne.jp/~s-hasei/ )