メール送信スクリプト 2

ホームページに来訪した方のメッセージを受け取るために、 フォームに書き込んだ内容をメールにして送信するためのスクリプトを ご用意いたしました。

本CGI では、従来の sendmail.cgi に比較して、以下の点が拡張されています。

フォームで使用可能なオプション一覧

使用方法:
  <form action="/cgi-bin/sendmail2.cgi" method="POST">  または、
  <form action="/cgi-bin/sendmail2.cgi" method="PUT">
(※ 入力項目が多くなる場合、なるべく METHOD="POST" の使用をお勧めします)

指定可能なパラメータ:

メールヘッダに関するパラメータ
  "MAIL_TO" (必須)        メールの送り先メールアドレス
  "MAIL_TITLE"            メールの題名(本文中に表示)
  "MAIL_SUBJECT"          メールの表題(Subject:)
  "MAIL_FROM"             メールの差出人のメールアドレス(From:)
  "MAIL_FROM_NAME"        メールの差出人名(From:)

エラーチェックに関するパラメータ
  "REQUIRED_OPT"          必須オプションを列挙
  "ALPHA_OPT"             英語オプションを列挙
  "NUMBER_OPT"            数字オプションを列挙


送信後の動作に関するパラメータ
(OK_URL と ERROR_URL もしくは RETURN_URL のいずれかの指定は必須)
  "OK_URL"                正常終了時に表示されるURLを指定
  "ERROR_URL"             エラー終了時に表示されるURLを指定
  "RETURN_URL"            標準ページの[戻る]リンクのURL



フォームの書き方

例として、yamadataroさんが、自分のホームページを見に来た人から コメントをメールで受け取るものとします。

その場合は、HTML文書の中に下記のようなフォームを埋め込みます。

<FORM ACTION="/cgi-bin/sendmail2.cgi" METHOD=POST>

<input type="hidden" name="MAIL_SUBJECT" value="来訪者記帳">
<input type="hidden" name="MAIL_FROM" value="yamadataro@airnet.ne.jp">
<input type="hidden" name="MAIL_TO" value="yamadataro@airnet.ne.jp">
<input type="hidden" name="REQUIRED_OPT" value="お名前:メール">
お名前 <BR>
 <input type="text" name="お名前">
<BR>
電子メールアドレス<BR>
<input type="text" name="メール">
<BR>
私のページへのコメントを下さい <BR>
<textarea name="comment" rows="3" cols="50">
</textarea>
<BR>
<input type="submit" value="  送信する  ">
<input type="reset" value="リセットする">
<input type="hidden" name="RETURN_URL" value="/yamadataro/">
</FORM>

 

フォームへの書き込み

上記のフォームは、こんな感じに見えます。(ここからは実際にメールは出せません)

お名前

電子メールアドレス

私のページへのコメントを下さい


そして、「送信する」のボタンを押せば、
次のようなメッセージが表示され、
フォームの内容の入ったメールがyamadataroさん宛に送信されます。

ありがとうございました
[戻る]


なお、上記フォームでは「お名前」と「電子メールアドレス」を必須入力項目に指定したので、
たとえば「お名前」が入力されていない場合には、
次のようなエラーが表示され、メールは送られません。

以下の理由でメール送信に失敗しました
必須入力項目 "お名前" が指定されていません。
[戻る]


フォームから送信されたメールは、こんな感じになります。

Subject: 来訪者記帳
Date: Thu, 7 Nov 1996 13:44:31 +0900
From: Auto-sendmail-program <webmaster@airnet.ne.jp>
To: yamadataro@airnet.ne.jp

お名前  : visitor_name
メール  : visitor@example.ne.jp
comment : 素晴しいホームページですね。
------------------------------------------------------------
Posting host: gate.example.ne.jp
User Agent: Mozilla/3.0b9 [ja] (Macintosh; I; PPC)


ご使用になるときに必要な変更

ご使用になるときには、フォーム内の以下の点を変更してください。

メールの件名(Subject:)を指定 [MAIL_SUBJECT]
現在、「来訪者記帳」となっているところを、お好きなように変更します。(省略可能)
メールの送信先を指定 [MAIL_TO]
yamadataro@airnet.ne.jpとなっているところを、ご自分のメールアドレスにします。(省略不可)
戻り先ページのURL [RETURN_URL]
http://www.airnet.ne.jp/yamadataro/となっているところを、ご自分のホームページのURLなどに変更します。
必須項目の指定 [REQUIRED_OPT]
name:mailとなっているところを、ご希望にあわせて指定してください.。

追加フィールド
これから先は、フォーム作成に必須ではありませんが、皆さんの お好みでカスタマイズするのに便利なフィールドを紹介いたします。

OKメッセージのページ(ok)
フォームへの入力が正しいときに表示するメッセージ(ページ)を 指定できます。
<input type="hidden" name="OK_URL" value="http://www.airnet.ne.jp/yamadataro/thanks.html">
No Goodメッセージのページ(err)
フォームへの入力が誤っているときに表示するメッセージ(ページ)を 指定できます。
(但し、ERROR_URL を指定するとエラー理由の表示が出来なくなります)

<input type="hidden" name="ERROR_URL" value="http://www.airnet.ne.jp/yamadataro/try_again.html">

各種フィールド
必要なだけ追加してください。一般的なフォームのタグはすべて使用できます。ただし、予約フィールド名とは、 重複しないようにしてください。

フォームにフィールドを追加すると、自動的にメールの本文に 追加されます。 その際、フィールドの名前(name)とフィールドの内容(valueもしくは textの内容)との間は、コロン ':' で区切られます。



サンプルフォーム

(実際のフォームの例) / (HTMLソースファイル)



COPYRIGHT(c) 2009, AIR Internet Service