このスクリプトはPerl5以上の環境で動作します。
改定履歴:
2008/11/09 Ver3.91 【重要】
送信完了画面に送ったメッセージを表示する形式でご利用の場合、
悪意あるコードが実行されてしまうセキュリティホール修正。
Ver3.xをご利用の方はindex.cgiを差し替えてご利用ください。
また、それ以前のバージョンをお使いの方もスクリプトのバージョンアップをお願いします。
2008/02/16 Ver3.9 【重要】
mail欄などに任意のjavascirptを入力することで悪意あるコードが実行されてしまうセキュリティホール修正。
Ver3.xをご利用の方はindex.cgiを差し替えてご利用ください。
また、それ以前のバージョンをお使いの方もスクリプトのバージョンアップをお願いします。
2006/01/29 Ver3.8
送信完了メッセージの文字化けバグ修正。
2006/01/26 Ver3.7
時間挿入。テンプレートファイルの入れたいところに<!--time-->で時間が表示されます。
2005/12/12 Ver3.6
メールアドレスチェック(セキュリティホール)修正。前バージョンをご利用の方はindex.cgiの差し替えのみでOKです。
また、本文内に「"」を入力するとプレビューモードを使用した場合、メールが途中で途切れてしまうバグ修正。
2005/02/28 Ver3.5
メール誤送信用URLをノーチェックでできるように変更。
2004/02/22 Ver3.4
メールの送り先を複数指定した場合、サーバによっては送れない現象を修正。
プレビュー画面の改行が無効になるバグを修正。
2003/11/13 Ver3.3
送信者へのコピーメール送信時に送信元のアドレスを管理人のものにするか送信者のものにするか選択できるように変更。
スパム防止のため、デザインファイルでの設定可能項目より「メール宛先」削除。(preset.cgiでのみ指定できます。)
メールの送り先を複数指定できるように変更。
2003/08/12 Ver3.2
管理者へのメール送信の際、fromアドレスがnobodyになってしまうバグ修正。
2003/07/15 バージョンアップ。
プラットフォーム取得ルーチンはfutomi's CGI Cafeさまより再配布許可を得てパッケージさせて頂いております。
2003/05/27 バージョンアップ。
ダイレクトアクセスでの無記入メール送信防止機能追加。
送信フォームごとcgiで稼動させるように変更。(必須入力エラー時の再入力防止)
2002/11/06 メールアドレス必須でない場合に送信エラーが出るバグを修正
2002/09/07 配布開始

各ファイルならびにフォルダと[パーミッション]
readme.html(説明ファイル=このファイルです)
designform(フォルダ)
├─index.cgi [755]
├─preset.cgi [755]
├─design.html [644]
├─error.html [644]
├─location.html [644]
├─preview.html [644]
├─agent.pl [644]
├─jcode.pl [644]
├─style.css [644]
├─master.txt[644]
└─user.txt [644]
index.cgiにアクセスすることでプログラムが機能します。design.htmlにアクセスしてもメール送信はできません。

cgiの設定
index.cgiをメモ帳などで開き、1行目を変更します。
 #!/usr/bin/perl    サーバで定められたパールへのパス
preset.cgiをメモ帳などで開き、各初期設定を変更します。
(設定の仕方はpreset.cgi内のコメントを参照してください。)

送信フォームhtmlの設定
design.htmlを開き、デザインを変更します。
フォームで設定できるオプションと使用方法例 (スペース/(設定))
隠し項目
(プレビューしない)
<input type="hidden" name="kakushi /H" value="隠し項目">
管理者のみに送り、送信者には送らない内容
必須入力項目 <input type="text" name="hissu /A" size=30 value="<!--hissu-->">
メールタイトル <input type="text" name="mtitle /S" size=30 value="<!--mtitle-->">
※隠し項目にしたい場合は置き換え要素を利用しないでください
ex) →<input type="hidden" name="mtitle /S" value="メールタイトル">
メールアドレス <input type="text" name="email /M /A" size=30 value="<!--email-->">
(この例のように、オプションは二つ以上も同時に付加できます。)
再入力メールアドレス <input type="text" name="emailw /W" size=30 value="<!--emailw-->">
コピー送信チェック <input type="checkbox" name="re_code" checked value="on">
(チェックすると送信者にもコピーメール送信)
プレビューチェック <input type="checkbox" name="preview" checked value="on">
(チェックすると送信前に確認画面を表示)

初期value値の名前を上記例に従って、<!-- -->で囲まれた、name値と同名にすることで、エラー時などに再入力をさせずにすみます。

プレビューデザインファイルの設定
preview.htmlを開き、デザインを変更します。
<!--フォームでnameに設定した項目--> に置き換わります。

送信メッセージの設定
master.txt(管理者への送信用),user.txt(ユーザへのコピー送信用)を開き、デザインを変更します。
<!--email--> が送信者メールアドレス
<!--host--> がリモートホスト
<!--ip--> がユーザIP
<!--platform--> がプラットフォーム(OSなど)
<!--browser--> がブラウザおよびバージョン
に置き換わります。
他、<!--フォームでnameに設定した項目--> も置き換わります。

たとえば、フォームhtml(index.html)で
<input type="text" name="name /A" size="30">
としたものを置き換えたい場合は、
<!--name--> で置き換わります。(テンプレートやプレビューファイルにて)

日本語でも可能かと思われますが、エンコードの関係で英数字にしておいたほうが無難です。