ホームページからメールを送ろう |
---|
[ 戻る ] |
ホームページを自分で作り始めると、下記のようなフォームを使ってメールを送ってみたくなりますね。 このページでは、その方法を解説します。
(HTMLを使ったフォームの使い方が分かることを前提とさせてもらいます)
|
<FORM method="POST" action="/~info/cgimail.cgi"> 宛先:<input type="text" name="sendto" size="30"> <BR><BR> 題名:<input type="text" name="subject" size="30"> <BR><BR> メッセージ:<BR> <textarea name="message" rows=8 cols=50></textarea> <BR><BR> <CENTER> <input type=submit value="送信"> </CENTER> </FORM> |
(1).フォーム機能は、<FORM>から始まり</FORM>で終わります。 そして、先頭の<FORM>タグの中の赤表示の部分 "/~info/cgimail.cgi" が、このフォームの中に入力された、宛先、題名、メッセージをメールで送ってくれるCGIのファイル名です。 当社アカントが p0001 の人が自分のディレクトリの中に cgimail.cgi というCGIファイルを置いた場合、"/~p0001/cgimail.cgi" と書いて下さい。
(2).宛先に入力された内容は sendto という変数に入いり、題名は subject、メッセージは message という変数に入ります。
(3).一番下の送信ボタンが押されると、(2)の変数の内容が、(1)で指定されたCGIに伝わるのです。
ここで一番大切なCGIのファイルを作ってみましょう。
(注意) このCGIファイルは、みなさんが自分のディレクトリに作成して下さい。間違っても、"/~info/cgimail.cgi" を使おうなんて考えてはいけません。
#! /usr/bin/perl require '/home/cgi-bin/jcode.pl'; read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); @pairs=split(/&/,$buffer); foreach $pair(@pairs) { ($name,$value)=split(/=/,$pair); $value=~tr/+/ /; $value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $FORM{$name}=$value; } open(MAIL,"| /usr/bin/mail -s $FORM{'subject'} $FORM{'sendto'}") || die "Can't send mail!\n"; print MAIL $FORM{'message'}; close(MAIL); print "Content-Type: text/html\n\n"; print " <HTML><HEAD><TITLE>ありがとう</TITLE></HEAD><BODY> <H1>メールのご利用ありがとうございます!</H1> <BR><BR> <A HREF=\"http://www.dreams.ne.jp/\"> ここ </A> をクリックして戻って下さい </BODY></HTML> "; |
上記の中で、下部の print 命令の下にある赤い文字の部分が、CGIがメールを送り終わった後に表示するページを記述した部分です。 このままでは、猿島インターネットのトップページに戻りますので、適当に修正して下さい。
CGIファイルを自分のパソコンで編集したら、それをサーバにFTP転送して下さい。そして、CGIのパーミッションを700に変更して下さい。FTPソフトでパーミッションの変更が出来ない場合には、Windows95 などなら、DOSプロンプトから telnet を使って下さい。
赤文字が実際に入力する部分。 ・MS-DOS プロンプトから > telnet w3.dreams.ne.jp と入力して、エンターキーを押す。 ・telnet のウィンドウが表示される。 login:p0001 自分のアカントを入力してエンターキーを押す。 password: 自分のパスワードを入力してエンターキーを押す。 (パスワードを入力しても画面には表示されない) 画面に Welcome Dreams Server と表示されたら、 % chmod 700 cgimail.cgi と入力してエンターキーを押す。 これで、cgimail.cgi ファイルのパーミッションが変更される。 % ls -la cgimail.cgi と入力してエンターキーを押し、 -rwx------ 1 info user 0 Sep 1 16:11 cgimail.cgi のように表示されることを確認する。 (上記の一番左側の -rwx------ の部分が同じように表示されていればOK) % exit と入力してエンターキーを押し telnet を終了。 |
|
---|