HTMLさえ書ければ誰でも簡単に設置することができます。しかし、送られてくるメールは %82%A0 のように符号化(エンコード)されていますので、これを適切に解読(デコード)してやる必要があります。
また、送信時の動作はブラウザの種類やバージョン、設定状況によって異なったり、メール送信ソフトがインストールされていない場合は、せっかく入力項目に一生懸命入力したのに、送信ボタンを押したら送信失敗、入力した内容が水の泡・・・となるケースも多いようです。
可能であれば、次章のCGIを用いた方法にするか、それが無理なら、「この送信フォームは mailto: を用いています。mailto: による送信が不可能な場合は直接○○にメールを・・・」などのように、注意書きをしておくことをオススメします。
HTML文書中に次のような記述をしてください。METHOD=POST を忘れないで指定してください。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ページでデコードすることもできます。(ただし、最近のInternet Explorerでは、漢字コードにUnicodeを使用しているため、うまく動作しないようです。)
- ClipDecoder(Win, Mac)
- FormDecoder(Win)
<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>
以下のようにすることで、メールのサブジェクトを指定することもできます。(対応していないブラウザもありあす。)<FORM METHOD=POST ACTION="mailto:foo@xxx.yyy.zzz?subject=TEST_MAIL"> : </FORM>「TEST_MAIL」の部分には好きなサブジェクトを指定することができます。スペースを用いる場合はエンコードされた %20 を用いて「TEST%20MAIL」のように記述してください。英文を用いるのが無難ですが、直接日本語を用いてもうまくいくケースもあるようです。ただし、これらの記述は、そのページからメールを送信する人の環境に依存しますので、自分の環境でうまくいったとしても、送信者の環境ではうまくいかないケースがありますので、注意してください。