Kyoto Software Research, Inc. Kyoto Software Research, Inc.
HOME 会社案内 事業内容 技術情報 製品情報 採用情報 パートナ募集
汎用メール送信CGI
目次
このプログラム1つで、フォームを使った複数の web page のアンケートや注文のメールを、 スクリプトを修正することなく、それぞれ異なったフォーマットで送信処理することができます。
  1. このプログラムの構成
  2. web page での設定
  3. テンプレートファイルの設定
  4. マクロ一覧

  5. テンプレートファイルサンプル


1. このプログラムの構成

このシステムは次の要素で構成されています。
(1) メール編集/送信スクリプト
(2) テンプレートファイル

1.1 メール編集/送信スクリプト
  • cgimail.pl

フォームを使った web page の入力項目を指定されたアドレスにメールで送信し、「送信されました」などの次のページを表示します。メールや次ページのスタイルはテンプレートファイルや web page フォーム内のHIDDEN タイプエレメントを使って自由にカスタマイズすることができます。
そのため、同じスクリプトを使っていろいろなページで形式の違うメール送信処理を行うことができます。

1.2 テンプレートファイル

メールの送信先やアクション後に表示するページのスタイルを指定するファイルです。
ファイルの漢字コードを気にする必要はありません。
また、HTML ファイルでもテキストファイルでもかまいませんが、HTML ファイルにしておくとアクション後に表示するページをブラウザで表示して見た目をテストできるので便利です。 設定方法については後述をご覧ください。


2. web page での設定

web page では FORM 中で以下の項目を設定します。

a) ACTION

FORM タグの ACTION にスクリプト名を指定します。さらにスクリプト名の後にテンプレートファイルがおかれているディレクトリを URL パスで指定します。
METHOD は GET でも POST でもかまいません。

例:

<FORM ACTION="/cgi-bin/cgimail.pl/ksr" METHOD=POST>
後述するTMPLFILEを使用しない場合はスクリプト名の後の URL パスを指定する必要はありません。

b) TMPLFILE

FORM 中の HIDDEN タイプエレメントでマクロを設定したテンプレートファイルを指定します。

例:

<INPUT TYPE="hidden" NAME=" TMPLFILE " VALUE=" cgimail_tmpl.html ">

基本的にはこれでだけで十分ですが、一覧表にあげたマクロはすべて HIDDEN タイプエレメントで埋め込むこともできます。
後述の MLADDRESS マクロ を HIDDEN タイプエレメントに埋め込めば、テンプレートファイルを使用しなくてもメールを送信することができます。
テンプレートファイルを使用しない場合は ACTION でスクリプト名の後に記述するURL パスを指定する必要はありません。

ただし、マクロに複数行の文字列を指定したい場合はフォームの HIDDEN タイプエレメントは使用できませんので、テンプレートファイルのマクロブロック内で記述してください。


3. テンプレートファイルの設定

テンプレートファイルでは後述の各種マクロを以下の形式で記述します。
<!-- START_ MACRONAME -- *
マクロの設定値
* -- END_ MACRONAME -->

1つのマクロブロックは、行頭から <!-- START_MACRONAME -- と書かれた行から -- END_MACRONAME -->と書かれた行で囲まれた領域です。
* の部分には任意の文字列が入っていてもかまいません。

MLADDRESS マクロは、テンプレートファイルかフォームの HIDDEN タイプエレメントのどちらかで 必ず指定してください
MLADDRESS マクロを記述しないとメールを送信することができません

テンプレートファイルを HTML ファイルにするとき、NEXTPAGE マクロブロックを以下のように記述するとアクション後に表示される内容をブラウザで表示して確かめられるので便利です。
例:

<!-- START_ NEXTPAGE -->
<html><head>
<title>CGIMAIL</title>
</head>
<body>
<center>
<p>
<font size=+2>
担当者へ送信されました
</font>
</body></html>
<!-- END_NEXTPAGE -->



設定値部分をコメント化しないとブラウザで表示できる

<!-- START_ MLADDRESS --
webmaster@kyoto-sr.co.jp
-- END_ MLADDRESS -->
設定値部分をコメント化するとブラウザで表示されない

4. マクロ一覧

    設定できるマクロの一覧を表にしました。
    表中の全てのマクロが web page のフォーム内の HIDDEN タイプエレメントで設定可能です。
    ただし、NEXTPAGE マクロや MLHEAD, MLFOOT マクロなど、改行を含む複数行の文字列を使用したい場合は HIDDEN タイプエレメントでは指定できません。複数行の文字列を指定したい場合はテンプレートファイルのマクロブロックで記述してください。

マクロ名

概略

説明

Default

NEXTPAGE 送信後表示するページの内容 送信ボタンを押された後に表示するページの内容を記述します。
HTMLを使って書けば、リンクやイメージを埋め込む事が自由にできます。
<html><head>
<title>CGIMAIL</title>
</head>
<body>
<center>
<p>
<font size=+2>
担当者へ送信されました
</font>
</body></html>
MLADDRESS
* 必須 *
メールの受取先アドレス 送信されるメールの受取先アドレスを指定します。
半角英数字 - . , @ 以外は使用できません。
複数アドレスを指定したいときは、
takotako@kyoto-sr.co.jp,ikaika@kyoto-sr.co.jp
のように記述してください。
none
MLFROM メールの FROM を指定 メールヘッダのFROM行に入れる文字列を指定します。 Web_Server
MLSUBJECT メールの SUBJECT を指定 メールヘッダのSubject行に入れる文字列を指定します。 AUTO MAIL
MLHEAD メールのヘッダー メール本文の最初に入れる文字列を指定します。 ** 以下のメールを送信しました **
MLFOOT メールのフッター
(signature)
メール本文の最後に入れる文字列(signature = 署名)を指定します。 none
IGNORETAG 入力フィールド値を無視する目印になる記号や文字列 フォームのテキスト入力フィールドの先頭文字でデフォルト値と判断し、メールの文面に含まないように無視します。
例えば:

<input type="text" size=50 name="メールアドレス"
value="<<半角英数字のみで記述してください >>">

<textarea cols=55 rows=10 name="メッセージ" >
<< 質問、苦情などなんでもどうぞ >> </textarea>

というようなフォームエレメントがある場合に、送信者がこのフィールドの値をこのまま送信しても、このマクロで << を指定しておくと送信するメールにはこれらの文は記載されません。

none
SUBMITNAME SUBMIT につけられた名前 フォームデータとして送られてくる SUBMIT につけられた名前と値をメールの文面に含まないように無視します。 none

以上