HTML講座テーマ別
☆CGIを使わずにメールを送信 - クイックガイド
腹減り日誌 - donguri browser 
お名前:
腹減り歴:
こちらからも送れるよ。




 
1. メールソフトを起動するリンク
 
2. CGIを使わないフォームメール
 
メールソフトを起動するリンク

HP上からメールを送ってもらう手段の1つとして メールソフトを起動させるリンクを張る方法がある。 具体的には送信先のメールアドレスや件名などを 予め入力された状態に出来るものの、 やってる事は普通にメールソフトからメールを送信するのと同じ事。
ただし、見ている人の環境によっては うまく動作しない場合もあるよ。

そのリンクの張り方としては通常のリンクと同じ要領で <a>にhref属性をつければいい。 この時に属性値をmailto:メールアドレスにすればOK。 『メールアドレス』の部分は送信させたいアドレスに書き換えてね。

メールは<a href="mailto:メールアドレス">こちら</a>まで

プレビュー♪ - 
メールはこちらまで

mailtoでのメールソフト起動−動作確認ブラウザ
 IE6.0   NN4.7   NN7.0   Opera7.0 
−ブラウザ別情報−
各ブラウザともmailtoには対応しているものの メールソフトによっては動作が異なる場合もあり得る。

件名を予め指定したい場合はメールアドレスに続けて ?subject=件名をつければOK。 『件名』のところは指定したい件名に書き換えてね。 この時に必ず半角の?(クエスチョンマーク)で区切るのを忘れずにね。

メールは<a
 href="mailto:メールアドレス?subject=件名">こちら</a>まで

ちなみにCcやBccを指定したい場合も同様に それぞれCc=メールアドレスBcc=メールアドレスのように指定すればいい。 1つのmailtoに複数使う場合は&で区切ってね。 例としては次のような感じ。

メールは<a
 href="mailto:メールアドレス?subject=件名&Cc=メールアドレス">こちら</a>まで

subjectによる件名指定−動作確認ブラウザ
 IE6.0   NN4.7   NN7.0   Opera7.0 
 *メールソフトにもよる。
−ブラウザ別情報−
Opera7.0とNN7.0では件名に全角文字などを使うと文字化けすることがある。 (Operaの場合はURLの?以後を予めエンコードする仕様らしい)

CGIを使わないフォームメール

通常フォームメールを作る際にはCGIを使うんだけど、 CGIが使えない場合などでもフォームメールは作ることが出来る。 ただ観てる人の環境によっては送信できない事があるので そのリスクを理解した上で使ってね。 場合によっては苦労して入力したのに それが水の泡になることもあるってこと。 CGIのメールフォームが使えるならそっちの方がいいんだけどね。

悪いところばかり指摘していてもしょうがないので フォームメールの作り方を紹介するね。 これにはまず<form>と各フォーム部品を使って 入力フォームを作ってね。 今回はテキストボックスに予め名前をつけてあるよ。

<form>
 名前:<input type="text" name="NAMAE"><br>
 感想:<input type="text" name="KANSOU"><br>
<div align="right">
<input type="submit" value="送信"></div>
</form>

プレビュー♪ - 
名前:
感想:

これをCGIを使わないメールフォームにするには <form>にaction属性をつけて 属性値にmailto:メールアドレスを指定し medhod属性(属性値はPOST)をつければいい。

<form action="mailto:メールアドレス" method="POST">
 名前:<input type="text" name="NAMAE"><br>
 感想:<input type="text" name="KANSOU"><br>
<div align="right">
<input type="submit" value="送信"></div>
</form>

このメールフォームから送信すると POSTDATA.ATTという名前の添付ファイルのついたメールが送信される。 (InternetExplorerとOutlookExpressの組み合わせの場合) これは通常エンコードされて送信されるので 全角文字などを含む場合はデコードする必要がある。 デコードするフリーソフトなどもあるので 探してみるといいかも。

送られてくるデータの形としてはフォーム部品の名前=入力された文字といった形になる。 例えば下のように入力して送信したとすると NAMAE=name&KANSOU=%89%BD%82%C6%82%E0%81E%81E%81Eとなる。 この%89%BD%82%C6%82%E0%81E%81E%81Eをデコードすると『何とも・・・』に戻るよ。

プレビュー♪ - 
名前:
感想:

エンコードせずに送信させるには<form>に属性をつける方法がある。

送信時のエンコード形式を指定する属性はenctypeだよ。

属性値はエンコードさせたいMIMEタイプを指定するんだけど、 この場合はtext/plainを指定してね。 本来この方法でフォームデータを送信するのは あまり好ましくないとされてはいるんだけど mailtoで使用する場合はどうなんだろう・・・。
 
ウェブ木箱HTML講座
Copyright(C) 2003 あう