## mailto:を利用する方法

トップ > メール送信フォーム設置法 > mailto:を利用する方法

#### ■ 概要

mailto: によるメール送信フォームは、HTML さえ書ければ誰でも簡単に設置することができます。

しかし、送られてくるメールは %82%A0 のように符号化（エンコード）されていますので、これを適切に解読（デコード）してやる必要があります。

また、送信時の動作はブラウザの種類やバージョン、設定状況によって異なったり、メール送信ソフトがインストールされていない場合は、せっかく入力項目に一生懸命入力したのに、送信ボタンを押したら送信失敗、入力した内容が水の泡・・・となるケースも多いようです。

可能であれば、次章のCGIを用いた方法にするか、それが無理なら、「この送信フォームは mailto: を用いています。mailto: による送信が不可能な場合は直接○○にメールを・・・」などのように、注意書きをしておくことをオススメします。

#### ■ 設置するには

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

    <form method="POST"
          action="mailto:foo@xxx.yyy.zzz">
    <div>名前: <input type=text name="NAME" size=20></div>
    <div>感想: <input type="text" name="MSG" size=20></div>
    <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送信」という掟破りの方法になりますので、あまりお勧めできません。)

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

- ClipDecoder(Win, Mac)
- FormDec(Win)
- FormDecoder(Win)
- FormReader(Win)

あまり便利ではありませんが、次のような JavaScript を記述した簡単な自作Webページでデコードすることもできます。（ただし、最近のInternet Explorerでは、漢字コードにUnicodeを使用しているため、うまく動作しないようです。）

    <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:foo1@xxx.yyy.zzz foo2@xxx.yyy.zzz">
      :
    </form>

次のように指定する方法もあります。

    <form method="POST"
      action="mailto:foo1@xxx.yyy.zzz?To=foo2@xxx.yyy.zzz">
       :
    </form>

ただし、これらの記述は、そのページからメールを送信する人の環境に依存しますので、自分の環境でうまくいったとしても、送信者の環境ではうまくいかないケースがありますので、注意してください。

#### ■ サブジェクトを指定するには

以下のようにすることで、メールのサブジェクトを指定することもできます。（対応していないブラウザもありあす。）

    <form method="POST"
       action="mailto:foo@xxx.yyy.zzz?subject=TEST_MAIL">
        :
    </form>

「TEST_MAIL」の部分には好きなサブジェクトを指定することができます。スペースを用いる場合はエンコードされた %20 を用いて「TEST%20MAIL」のように記述してください。英文を用いるのが無難ですが、直接日本語を用いてもうまくいくケースもあるようです。

Copyright (C) 1997-2003 杜甫々
初版：2002年5月18日、最終更新：2003年3月21日
http://www.tohoho-web.com/wwwmail1.htm