|
|
|
|
|
|
☆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のメールフォームが使えるならそっちの方がいいんだけどね。
悪いところばかり指摘していてもしょうがないので
フォームメールの作り方を紹介するね。
これにはまず<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で使用する場合はどうなんだろう・・・。