メール

トップ > 逆引きリファレンス > メール

メールを送信させるには(mailto:)

mailto を用いることで、リンクをクリックした時に指定したメールアドレスを送信先としたメーラ(メールソフト)を起動することができます。

<a href="mailto:foo@xxx.yyy.zzz">foo@xxx.yyy.zzz</a>

Internet Explorer の場合は、[ツール(T)]→[インターネットオプション(O)...]→[プログラム]→[電子メール] で、mailto: リンクをクリックした時に起動されるメールソフトを切り替えることができます。

mailto:でメールの件名やCcを指定するには

メールソフトを起動したときに、件名(Subject)、写し送付先(Cc)、秘密の写し送付先(Bcc)等を指定するには次のようにします。

<a href="mailto:foo@xxx.dom?subject=TEST&cc=baa@xxx.dom">TEST</a>

区切り文字は最初がクエスチョンマーク(?)で、次からはアンドマーク(&)です。Internet Explorer と Outlook Express の組み合わせの場合、日本語や半角スペースを用いてもうまく動作しているようですが、正しくは、日本語、記号、半角スペースなどは %20 の形式に URLエンコードした文字を指定する必要があります。

mailto:であて先を複数指定するには

メールアドレスをカンマ(,)で複数記述することにより、あて先を複数指定することができます。

<a href="mailto:foo@xxx.dom,baa@xxx.dom?subject=TEST">TEST</a>

mailto:でメールの本文を指定するには

mailto: によるメール送信で、メールの本文を指定する場合は、subject や cc と同様に body を指定します。

<a href="mailto:foo@xxx.dom?subject=TEST&body=TESTMAIL">TEST</a>

フォームに入力した内容をメール送信するには(mailto)

フォーム(<form>)の action 属性に mailto: を指定することでフォームに入力した内容をメールで送信することは可能です。しかしこの方法は、ブラウザの種類やバージョン、設定状況によって動作が異なったり、せっかく入力した内容を送信できないケースもありますので、あまりオススメできる方法ではありません。

<form method="POST" enctype="text/plain"
      action="mailto:foo@xxx.dom?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>

フォームに入力した内容をメール送信するには(サービス)

多くのプロバイダがフォームメール送信サービスを行っています。設置も非常に簡単なものが多いので、自分が利用しているプロバイダがサービスを行っていないか確認してみましょう。

他にもいくつもの無料サービスがあります。Google で「デコードサービス」を検索してみましょう。

フォームに入力した内容をメール送信するには(CGI)

メール送信フォームの 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>

Copyright (C) 2003 杜甫々
初版: 2003年10月12日
http://www.tohoho-web.com/how2/mail.htm