プログラム設計

メールフォームCGIを作る前に…。

まずは、どんなメールフォームCGIスクリプトにするのかを、ある程度考えておきましょう。

ここである程度決めておかないと、途中で方針転換しなくてはいけなくなった際、たくさんコーディングしなおすことになります。

当然バグも起こりやすくなるでしょう。

具体的にどのあたりまでを決めておけばよいかについては、あなたの経験値により変わってきます。

  1. 入力フォーム
  2. スクリプト

入力フォーム

まずは、わかりやすいところで、HTML入力フォームについて決めていきましょう。

入力項目

入力項目は…。

1、氏名(1行入力テキスト)。
2、メールアドレス(1行入力テキスト)。
3、お問い合わせ内容(複数行入力テキスト)。
4、入力されたメールアドレスあてに、控えを送るかどうかのチェックボックス。

以上、4種類の入力項目を用意します。

文字コード

HTML入力フォームの文字コードは、いろいろなウェブページで使えるように…。

「Shift_Jis」「EUC」「UTF-8」この3種類の文字コードを採用します。

スクリプト

次に、Perl/CGIプログラム本体について考えていきましょう。

動作手順

HTML入力フォームから受け取ったデータをチェックし、不備があればエラーメッセージを出します。

問題なければ、管理者に通知します。

もし、前述の控えを要求するチェックボックスがオンになっていた場合は、そのアドレスにも通知します。

通知内容は、管理者用と控え用で別の内容にします。

通知内容

送信するメールの内容については、テンプレートを用意しそこに、入力内容をはめ込んでいく形にします。

スパム行為対策

常にIPアドレスとホスト名を取得するようにします。

そしてスパム行為に対しては、ブラックリストファイルを用意し、IPアドレスまたはホスト名を記述していくようにします。

ブラックリストに載っているIPアドレスまたはホスト名を持ったアクセスは拒否するようにします。

文字コード

スクリプトの文字コードは、Shift_Jisコードを採用します。

文字化けの可能性が出てくるので、このページに書かれているように外部ファイルから出力メッセージを読み込むことで回避する方法を採用します。

各種設定

簡単に変更できるように、いくつかの外部設定ファイルを用意し、一回ごとに読み込んで動作させることにします。

1、Sendmailや管理者メールアドレスなどを登録しておくファイル。
2、各種メッセージの文字列を記述しておくファイル。
3、管理者に通知するテンプレートファイル。
4、控えとして通知するテンプレートファイル。
5、ブラックリストファイル。

以上、5つの外部設定ファイルを使用します。

<戻る>