フォームデータ用メールプログラム


チェックボックスやポップアップメニューによる簡易アンケート、はたまた意見や感想を書いてもらうための掲示板等、情報を発信するだけでなく相手からの情報を受け取るページってありますよね。

そんなページを作成する際、一番問題になるのが入力されたデータの受け取り方。ACTIONにmailtoを指定すればいいのですが、これだと文字化けを起こしたり、送られてきたデータが読みにくかったりします。 そのたびにデコードしたり、文字化けを推測したりしなければなりません。

VIS では、入力されたデータをデコードして、読みやすい形に整形してからメールにしてページ制作者に送り届けるためのCGIを作成しました。これでもう、コード変換などの余分な苦労とはサヨナラです。


HTMLの書式


  1. <FORM METHOD="方法" ACTION="http://www.vinet.or.jp/cgi-bin/FormMail.cgi"> : : データを入力してもらう部分 : :
  2. <INPUT TYPE="HIDDEN" NAME="subject" VALUE="電子メールサブジェクト">
  3. <INPUT TYPE="HIDDEN" NAME="mailaddr" VALUE="電子メールアドレス">
  4. <INPUT TYPE="HIDDEN" NAME="succpage" VALUE="転送が成功したときのページURL">
  5. <INPUT TYPE="HIDDEN" NAME="failpage" VALUE="転送が失敗したときのページURL">
  6. <INPUT TYPE="HIDDEN" NAME="required" VALUE="入力に漏れを許可するか">
  7. <INPUT TYPE="HIDDEN" NAME="necessary" VALUE="必需項目の指定">
  8. <INPUT TYPE="HIDDEN" NAME="repage" VALUE="不完全な入力のまま送信したときのページ">
  9. <INPUT TYPE="SUBMIT" NAME="ボタンの名前">
  10. </FORM>

以下に各行の説明をします。

  1. このフォームの始まりを意味します。  タグのオプション中の METHOD には、"GET"と"POST"の二種類が選択できますが、ここではPOSTを指定してください。

  2. メールのサブジェクトを指定します。

  3. メールを送信してもらいたい宛先を指定します。

  4. メールの転送が成功した際に表示するページのURLを指定します。

  5. メールの転送が失敗した際に表示するページのURLを指定します。

  6. フォーム入力に対し、漏れチェックするかどうかを決めます。
    "0"のとき:
    チェックしません。漏れがあってもそのまま転送します。但し、どの項目にも何も入力されていないとメールは送信されません。
    "1"のとき:
    チェックします。漏れがある場合、メールは送信されません。

    第7行のnecessaryと合わせて使えば、すべての入力項目ではなく、幾つかの必需項目に対して漏れチェックすることができます。

  7. 必需な入力項目のネームを指定します。複数の場合は","で区切ります。 necessaryを指定するには、予め第6行でrequiredを"1"に指定する必要があります。requiredが"0"となっている場合、necessaryが指定されても無効となります。なお、この一行は省略可能です。

    necessaryの指定あり:
    指定された項目だけを漏れの有無をチェックします。
    necessaryの指定なし:
    全入力項目を漏れの有無をチェックします。


  8. (5)のrequiredの設定状態に合わせて、メールが送信されないときに表示するページのURLを指定します。 警告文などを出すのに使うとよいでしょう。

    なお、この一行は省略可能で、省略されたときはこのフォームが書かれているページが表示されます。但し、フレーム機能による画面分割が無効になってしまいますので注意してください。

  9. 入力されたデータを転送する為のボタンです。これがないと、せっかく入力してもらってもそのデータを送ってもらう手段が無いことになります。

  10. フォームの終わりを意味するタグです。これが無いと、エラーとなってページ構成を正しく認識してもらえません。

あとは、自分の好きなようにデータ入力部を作成してください。 具体的な作成方法は、

「HTML&CGI入門」(エーアイ出版、ISBN 4-87193-438-1)
「HTML入門」(プレンティスホール、ISBN 4-931356-19-2)
など市販の書籍や雑誌の記事などを参考にしてください。


記述例

HTMLファイルの例を下に示します。 また、このHTMLの表示はこの様になります。


<HTML> <TITLE>FORM SAMPLE</TITLE> <CENTER> <H1>Form Sample</H1> </CENTER><HR SIZE=5> <BODY> <FORM METHOD="POST" ACTION="http://www.vinet.or.jp/cgi-bin/FormMail.cgi"> <H3>下のフォームに記入 してくださいね:</H3> <DL><DD> <FONT SIZE="4">お名前:</FONT><INPUT NAME="A.Name"> <FONT SIZE="4">  男性<INPUT TYPE="RADIO" NAME="B.Mr/Mrs" VALUE="男性"> <FONT SIZE="4">女性<INPUT TYPE="RADIO" NAME="B.Mr/Mrs" VALUE="女性"><BR> <FONT SIZE="4">お国: </FONT><INPUT NAME="C.Country"><BR> <FONT SIZE="4">Eメールアドレス:</FONT><INPUT NAME="D.Mail"><BR><BR> <FONT SIZE="4">コメント:</FONT><BR> <TEXTAREA NAME="E.Comment" ROWS="5" COLS="50"> </TEXTAREA><BR><BR> <INPUT TYPE="HIDDEN" NAME="subject" VALUE="VIS FORMMAIL"> <INPUT TYPE="HIDDEN" NAME="mailaddr" VALUE="taro@vanfu.co.jp"> <INPUT TYPE="HIDDEN" NAME="succpage" VALUE="http://www.vinet.or.jp/~taro/index.html"> <INPUT TYPE="HIDDEN" NAME="failpage" VALUE="http://www.vinet.or.jp/~taro/fail.html"> <INPUT TYPE="HIDDEN" NAME="required" VALUE="1"> <INPUT TYPE="HIDDEN" NAME="necessary" VALUE="A.name,D.Mail"> <INPUT TYPE="HIDDEN" NAME="repage" VALUE="http://www.vinet.or.jp/~taro/form.html"> <INPUT TYPE="RESET" VALUE="リセット"><INPUT TYPE="SUBMIT" VALUE="送信"> </DL> </FORM> </BODY> </HTML>

次に、上のフォームに記入して送信した場合に送られてくるメールを示します。


Date:Wed, 12 Jun 1996 18:11:38 +0900 From: WWW User <www@vinet.or.jp> Subject:VIS FORMMAIL To: taro@vanfu.co.jp A.Name: 佐藤 花子 B.Mr/Mrs: 女性 C.Country: 日本 D.Mail: hanako@somewhere.co.jp E.Comment: このようなメールが送られてきます。

上の設定で、フォームデータ用CGIを使うことができます。


To HOME To CGI Top