mailto: を用いることで、リンクをクリックした時に指定したメールアドレスを送信先としたメールソフトを起動することができます。
<a href="mailto:foo@example.com">foo@example.com</a>
メールソフトを起動したときに、件名(Subject)、写し送付先(Cc)、秘密の写し送付先(Bcc)等を指定するには次のようにします。
<a href="mailto:foo@example.com?subject=TEST&cc=baa@example.com">TEST</a>
区切り文字は最初がクエスチョンマーク(?)で、次からはアンドマーク(&)です。Internet Explorer と Outlook Express の組み合わせの場合、日本語や半角スペースを用いてもうまく動作しているようですが、正しくは、日本語、記号、半角スペースなどは %20 の形式に URLエンコードした文字を指定する必要があります。
メールアドレスをカンマ(,)で複数記述することにより、あて先を複数指定することができます。
<a href="mailto:foo@example.com,baa@example.com?subject=TEST">TEST</a>
mailto: によるメール送信で、メールの本文を指定する場合は、subject や cc と同様に body を指定します。
<a href="mailto:foo@example.com?subject=TEST&body=TESTMAIL">TEST</a>
フォーム(<form>)の action 属性に mailto: を指定することでフォームに入力した内容をメールで送信することは可能です。しかしこの方法は、ブラウザの種類やバージョン、設定状況によって動作が異なったり、せっかく入力した内容を送信できないケースもありますので、あまりオススメできる方法ではありません。
<form method="POST" enctype="text/plain" action="mailto:foo@example.com?subject=TESTMAIL"> <div>氏名:<input type="text" name="NAME"></div> <div>年齢:<input type="text" name="AGE"></div> <div>住所:<input type="text" name="ADDR"></div> <div><input type="submit" value="送信"></div> </form>
メール送信フォームの CGI を自分で設置することもできます。
mailto: によるフォームメールで enctype="text/plain" を指定しない場合、データは POSTDATA.ATT という添付ファイルで下記のような形式にエンコードされた状態で送信されます。
NAME=%82%A0%82%A2%82%A4
この形式のデータを読むためには下記のようなソフトが必要になります。
あまり便利ではありませんが、次のような JavaScript を記述した簡単な自作Webページでデコードすることもできます。ただし、最近の Internet Explorer では、漢字コードにUnicodeを使用しているため、うまく動作しないようです。Netscape ブラウザで利用可能です。
<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>