futomi's CGI Cafe 

MP Form Mail CGI Ver2.2


Web上にて、お問い合わせや注文などを受け付け、メールを指定のメールアドレスへ送信するCGIです。添付ファイルも送ることができます。また、フォーム、確認画面、エラー画面は、テンプレート方式のため、自由にデザインすることができます。自動メール返信機能つきですので、お問い合わせいただいた方へのフォローも万全!
 
■ 目次
 
■ 主な機能
  • 添付ファイルを受け付けることができます。

フォーム(入力画面)でファイルを指定して、添付ファイルとして受け取ることができます。CGIにてMIMEエンコード(Base64)します。

  • 確認画面表示機能つき

入力フォームにて入力したものを確認するための画面を表示することができます。設定で表示する、しないを選ぶことができます。

  • フォーム(入力画面)、確認画面、エラー画面を自由にカスタマイズできます。

これらの画面は、テンプレート方式をとっていますので、あなたのサイトのイメージに合わせたデザインが可能です。

  • 自動返信メール送信機能つき

お問い合わせ、注文などでご利用いただくときには、送信者に対して自動的にメールを返信することができます。返信メールの文章も、テンプレート方式をとっていますので、利用シーンに応じてカスタマイズ可能です。また、フォームで入力値を返信メール内に埋め込むことができますので、メールのはじめに、「○○○○様」のような文言を付け加えることができます。

  • メールフォーマットカスタマイズ機能

メールフォームから送信されるメールの文面もカスタマイズ可能です。デフォルトでは、規定のフォーマットで送信されます。しかし細かく指定したい場合には、テンプレート方式を採用できますので、デザインは自由自在です。

  • 簡易折返・英文ワードラップ機能

フォームメールの場合、利用者は改行を入れずに投稿することが多々あり、読み手にとっては、メールソフトで読みにくくなります。簡易折返・英文ワードラップ機能を使うことにより、指定文字で折り返され読みやすくなります。

  • ロギング機能

フォームの内容をメールで送るだけではなく、ログファイルに保存することが可能です。ログファイルフォーマットは、「カンマ区切り」「スペース区切り」「タブ区切り」から選択できます。Execlのような表計算ソフトに取り込むときに便利です。

  • 文字制限機能

テキストエリアやテキストフィールドでの文字数制限をかけることができます。

  • 添付ファイルサイズ制限機能

添付ファイルのファイルサイズの上限を設定することができます。

  • 必須項目の指定

フォームメールCGIでは、必ず入力・選択してもらいたい項目があるものです。MP Form Mail CGIでは、個々に必須項目を設定することができますので、せっかく頂いたメールの情報不足から開放されます。

  • シリアル番号付与

各メールには、シリアル番号(一意的な番号)を付与することができます。シリアル番号は、送信していただいた方への自動返信メールにも入れることができます。注文番号やお問い合わせ番号にご利用いただけます。

  • 受付拒否機能

ドメイン名やIPアドレスを指定して、利用できないようにすることができます。いたずら対策にご利用いただけます。

  • 添付ファイルの拡張子を限定

不要な添付ファイルを送られないよう、添付ファイルの拡張子を限定することができます。特殊用途でいつも決まったファイルを送るようなシーンでご利用いただけます。

  • 外部サーバ利用禁止機能

自分の知らない間に、不正に設置したCGIを使ってメールを送信されてしまうことがありえます。それに対抗するために、リクエストをすることができるフォームのURLやドメインを限定することができます。フォームのURLやドメインを限定すれば、不正利用を防ぐことができます。

 
■ CGI利用規定の同意

CGI利用規定をご覧になり、同意した上で、ご利用ください。

CGI利用規定を読む

 

 
シェアウェア料金

【料金】

個人利用 法人・商用利用
フリー 1サイトあたり \2,000
  • 本CGIには、テンプレートファイルに 著作権表示が記載されております。個人利用であっても、著作権表示を削除してご利用いただく場合には、シェアウェアとし「法人・商用利用」を適応いたします。
  • 個人利用であっても、個人商店など商用サイトでのご利用の場合には、「法人・商用利用」を適応いたします。
  • ホームページ作成代行業などの業者様でクライアントに対して本CGIを代行で設置提供する場合には、「法人・商用利用」を適応いたします。
  • 本CGIは、同サイト内であればいくつ設置して頂いても構いません。ただし、運営者が同じでも、主旨が異なるサイトに設置する場合には、それぞれにシェアウェア料金を適応します。
  • 本CGIは、試用期間を設けておりません。シェアウェア料金をお支払いいただく前に、十分ご試用いただき、ご納得いただいてからお支払いいただきますようお願いいたします。

【支払い方法】

Vectorにてお支払いいただけます。Vectorをご利用になる場合は、こちらからお申し込みください。

銀行振込をご希望の方は、こちらからご連絡ください。折り返し、ご案内いたします。


■ ファイルの一覧と機能

CGIをダウンロードし、解凍してください。それぞれのファイルについて解説します。

ファイル名 Permission 転送モード ファイルの機能
 mpmail/
(705) 本CGI用ディレクトリ
 mpmail.cgi
(704) [ASCII] MP Form Mail CGI本体
 mpconfig.cgi
(604) {ASCII] 設定ファイル
 form.html
(604) [ASCII] フォームサンプルHTML
 confirm.html
(604) [ASCII] 確認画面サンプルHTML
 error.html
(604) [ASCII] エラー画面サンプルHTML
 mail.txt
(604) [ASCII] メールテンプレート
 reply.txt
(604) [ASCII] 自動返信メールテンプレート
 jcode.pl
(604) [ASCII] 日本語コード変換ライブラリー※3
 attachment/
添付ファイル作業ディレクトリ※1
 Readme/
ReadMe※2
※1 このディレクトリ内は空ですが、サーバ上で必要となりますので、必ず他のファイルと一緒にサーバへアップロードしてください。
※2 HTML形式のReadMeファイルです。このホームページが入っています。このフォルダは、サーバへアップロードする必要がありません。
※3 jcode.pl は、歌代 和正 <utashiro@iij.ad.jp> 氏によって作成されている、日本語コード変換を行うための Perl ライブラリです。

 括弧内は、パーミッションを表します。サーバへアップロードした際には、それぞれのファイルのパーミッションを正しく設定してください。ここで掲載されているパーミッションは、あくまでも参考です。お使いのプロバイダーの指示に従い、正しくパーミッションを設定してください。またサーバへのアップロードは、上表のとおりの転送モードで転送してください。


■ Let's get started!

とりあえず、動かしてみましょう。以下の手順に従って、サンプルを動かしてみましょう。

  1. リダイレクト先ホームページの準備

このCGIを仕込む前に、リダイレクト先ホームページを準備して頂かなければいけません。これは、フォームに入力して送信した後に表示されるページのことです。「ありがとうございました」などのような感謝の気持ちをこめたメッセージを掲載するといいでしょう。出来上がったら、サーバにアップしておいてください。

  1. Perlのパス設定

プロバイダーによって、Perlパスが異なります。デフォルトでは「#!/usr/local/bin/perl」と設定しております。プロバイダーの指示に従い、「mpmail.cgi」の1行目を書き換えてください。ほとんどのプロバイダーでは、そのままで動作します。

  1. CGIの設定

「mpconfig.cgi」をテキストエディターで開いてください。すべて設定は、このファイルで指定します。ここではとりあえず動かしてみるだけですので、最小限の設定をご案内します。

  • メール送信先アドレスの設定

フォームから送信されたメールを受け取るメールアドレスの指定です。あなたのメールアドレスを指定して下さい。

#--------------------------------------------------------------------
#■メール送信先アドレスの設定
# フォームから送信されたメールを受信するメールアドレスを指定して下さ
# い。フォームから送られたメールは、ここで指定するメールアドレスに届
# きます。
#--------------------------------------------------------------------
$MailTo = 'hoge@foo.bar.co.jp';
  • リダイレクト先URL

先ほど準備したリダイレクト先ホームページのURLを指定して下さい。必ず、http:// から指定して下さい。

#--------------------------------------------------------------------
#■リダイレクト先URL
# フォームから送信した後に表示されるページのURLを指定します。
# 必ず、http:// から指定して下さい。
#--------------------------------------------------------------------

$RedirectUrl = 'http://www.bar.co.jp/~hoge/thanx.html';
  • sendmailの指定

メールを送信するためのプログラムの指定です。プロバイダーによって異なりますので、お使いのプロバイダーの指定に従って、指定して下さい。ほとんどのプロバイダーでは、デフォルトのままで動作するようです。

#--------------------------------------------------------------------
#■sendmailの指定(フルパスで指定して下さい。)
# sendmailのパスは、お使いのプロバイダにお尋ねください。
#--------------------------------------------------------------------

$Sendmail = '/usr/lib/sendmail';
  • 自動返信メール用送信元メールアドレス

自動返信メールの差出人のメールアドレスの指定です。あなたのメールアドレスを指定して下さい。

#--------------------------------------------------------------------
#■自動返信メール用送信元メールアドレス
# 自動返信メールの差出人となるメールアドレスの設定です。主に、あなた
# のメールアドレスを設定することとなります。
# 自動返信メール設定をONにする場合は、必ず正しいメールアドレスを指定
# して下さい。
# 例:
# $FromAddrForReply = 'for@hoge.com';
#--------------------------------------------------------------------

$FromAddrForReply = '';
  1. フォームHTMLの編集

「form.html」をテキストエディターで開いて下さい。

<form method="POST" action="http://www.foo.com/bar/mpmail/mpmail.cgi" enctype="multipart/form-data">

この記述の「http://www.foo.com/bar/mpmail/mpmail.cgi」の部分を、あなたの環境に合わせて書き換えてください。

  1. サーバへアップロード

これで設定は完了ですので、サーバへアップロードしましょう。すべてのファイルをASCIIモードで転送してください。ホームページコンテンツとCGIのディレクトリが異なるプロバイダーをご利用の方は、「form.html」をホームページコンテンツ用のディレクトリへ、その他はCGI用のディレクトリへアップろロードしてください。転送が完了しましたら、「mpmail.cgi」のパーミッションを「705」にして下さい。もし、お使いのプロバイダーではことなるパーミッションを指定しているようでしたら、プロバイダーの指示に従ってください。

  1. さぁ! 試験してみましょう

サーバへアップロードした「form.html」に、ブラウザーでアクセスしてみてください。フォームサンプル画面が表示されましたね。これでいろいろ試してみてください。機能の概要が分かってくるかと思います。この試験で送られたメールと、自動返信されたメールはともにあなたのメールアドレスに届いているはずです。そのメールの内容もチェックしてみてください。

いかがでしたか?ちゃんと動いたでしょうか。これからは、あなたの環境に合わせて、少しずつカスタマイズしていってください。次から、カスタマイズの方法をご案内します。

 
■ フォームの編集方法

メールフォームは自由にカスタマイズすることができます。サンプルの「form.html」を例にとり説明します。

<form method="POST" action="http://www.foo.com/bar/mpmail/mpmail.cgi" enctype="multipart/form-data">

<table border="1" cellspacing="0">
<tr>
<td height="23">■ おなまえ</td> 
<td height="23"><input type="text" name="おなまえ" size="20"></td>
</tr>
<tr>
<td height="23">■ メールアドレス</td> 
<td height="23"><input type="text" name="mailaddress" size="20"></td>
</tr>
<tr>
<td height="12">■ タイトル</td> 
<td height="12"><input type="text" name="subject" size="20"></td>
</tr>
<tr>
<td height="12">■ 感想</td> 
<td height="12"><textarea rows="3" name="感想" cols="40"></textarea></td>
</tr>
<tr>
<td height="12">■ 添付ファイル</td> 
<td height="12"><input type="file" name="attachment"></td>
</tr>
</table>
<p><input type="submit" value=" 送  信 " name="B1"></p>
</form>

formタグ内には、必ず、「enctype="multipart/form-data"」を加えてください。これがないと、添付ファイルを送ることができません。添付ファイルが不要の場合には、「enctype」は不要です。

name属性は、お好きな文字列で指定して下さい。ただし、半角括弧はご利用いただけませんので、ご注意ください。また、name属性には以下のとおり、予約語があります。予約語の意味をご理解し、適宜ご利用ください。

name属性名 説明
mailaddress name属性名を「mailaddress」とすると、それに入力された値は、入力者のメールアドレスとみなし、返信メールの送信先アドレスに指定します。また、自動的に入力値チェックを行いますので、全角での入力や、メールアドレスとしては、不適切な文字列が入力されると、エラーを返します。自動返信メール送信機能を使う場合には、必ずメールアドレスの欄のname属性名を「mailaddress」にして下さい。
subject name属性名を「subject」とすると、送られてくるメールのサブジェクトに適応されます。「subject」がないと、「mpconfig.cgi」で「■デフォルトのメールサブジェクト」で設定したものが適応されます。
attachment 添付ファイルを付けたい場合には、name属性を「attachment」としてください。「attachment」と指定しないと、添付ファイルとしてみなしませんので、ご注意ください。

■ 確認画面テンプレートの編集方法

確認画面は、「confirm.html」ファイルを編集することにより、自由にカスタマイズすることができます。同梱されているサンプルの「confirm.html」を例にとり説明します。

<form method="POST" action="<!--cgiurl-->" enctype="multipart/form-data">
<!--hidden-->

<table border="1" cellspacing="0">
<tr>
<td height="23">■ おなまえ</td> 
<td height="23"><!--おなまえ--></td>
</tr>
<tr>
<td height="23">■ メールアドレス</td> 
<td height="23"><!--mailaddress--></td>
</tr>
<tr>
<td height="12">■ タイトル</td> 
<td height="12"><!--subject--></td>
</tr>
<tr>
<td height="12">■ 感想</td
<td height="12"><!--感想--></td>
</tr>
<tr>
<td height="12">■ 添付ファイル</td> 
<td height="12"><!--attachment--></td>
</tr>
</table>
<p><input type="submit" value=" 送  信 " name="B1"></p>
</form>

確認画面のformタグ内のaction属性の値には、例のように必ず「<!--cgiurl-->」と指定して下さい。また、formタグの次の行に、「<!--hidden-->」を必ず入れて下さい。

フォームに入力された値を、確認画面に表示させたい場合には、

<!--name属性-->

と記載します。name属性とは、フォームで指定したname属性と同じものです。上の例では、「<!--おなまえ-->」「<!--mailaddress-->」「<!--subject-->」「<!--感想-->」「<!--attachment-->」の部分となります。

 

 
■ エラー画面テンプレートの編集方法

エラー画面は、「error.html」ファイルを編集することにより自由にカスタマイズすることができます。同梱されているサンプルの「error.html」を例にとり説明します。

<table border="0" width="50%" bgcolor="#F1D7FF" cellpadding="10">
<tr>
<td width="100%"><font color="#990033"><!--error--></font></td>
</tr>
</table>

このエラー画面で注意すべきところは、「<!--error-->」だけです。この部分に、エラーメッセージが表示されますので、お好きなところに、「<!--error-->」を記述して下さい。もし、個別のエラーメッセージではなく、単一のメッセージにしたい場合には、「<!--error-->」を消して下さい。

 
■ 自動返信メールテンプレートの編集方法

自動返信メールの文章は、「reply.txt」を編集することにより、自由にカスタマイズすることができます。同梱されているサンプルの「reply.txt」を例にとり説明します。

<!--おなまえ-->

お問い合わせありがとうございました。

入力された値を、自動返信メールに入れることができます。サンプルの場合には、「おなまえ」の部分がメールの先頭に入るようになります。例えば、フォームの「おなまえ」の欄に「太郎」といれた場合、自動返信メールは、以下のようになります。

太郎様

お問い合わせありがとうございました。

おなまえだけではく、入力された値はどれでも返信メール内に埋め込むことが可能です。書き方は、上で説明した確認画面の編集方法と同様で、「<!--name属性-->」と書くと、その部分が置き換えられます。ただし、添付ファイルは返信しませんので、ご注意ください。

シリアル番号を返信メールに入れたい場合には、「<!--sirial-->」と必要な個所に記載すれば、それがシリアル番号に置き換わり、メールが返信されます。

 
■ メールフォーマットをカスタマイズするには

メールフォームから送られたメールの文章、レイアウトは、「mail.txt」を編集することにより自由にカスタマイズすることができます。同梱されているサンプルの「reply.txt」を例にとり説明します。

まず、デフォルトでは、メールフォーマットは規定のフォーマットで送られるようになっておりますので、設定ファイル「mpconfig.cgi」をテキストエディターで開いていただき、以下の設定の値を「1」に変更してください。デフォルトでは、「0」になっています。

#--------------------------------------------------------------------
#■フォームメールフォーマットカスタマイズ
# フォームから送信される内容をカスタマイズする場合には「1」を指定し
# て下さい。カスタマイズの場合には、次の「メールのテンプレートファイ
# ルの指定」を設定して下さい。
# 規定のフォーマットでよい場合には、「0」を指定して下さい。
#--------------------------------------------------------------------

$MailFormatCustomizeFlag = 1;

次に、同梱の「mail.txt」をテキストエディタで編集します。

テンプレートファイルを使った場合のサンプル

【シリアル】
<!--SIRIAL-->

【おなまえ】
<!--おなまえ-->

【メールアドレス】
<!--mailaddress-->

【感想】
<!--感想-->

【添付ファイル】
<!--attachment-->


【送信者情報】 

・ブラウザー : <!--USERAGENT-->
・送信元IPアドレス: <!--REMOTE_ADDR-->
・送信元ホスト名 : <!--REMOTE_HOST-->
・送信日時 : <!--DATE-->

 不要なものは削除して頂いても結構です。また、カスタマイズしたメールフォーム用のHTMLに使った name属性 を 「<!--name属性-->」のように指定すると、その部分が入力された値に置き換わって、メール送信されます。編集方法は、先ほどの「自動返信メールテンプレート」の編集方法とまったく同じです。ただし、以下のname属性は予約語となっております。適宜ご利用ください。

name属性名 説明
USERAGENT <!--USERAGENT--> の部分が、送信者のブラウザーから送信される環境変数「HTTP_USER_AGET」の文字列に置き換わります。送信者のOSやブラウザーの判別に役立ちます。
例: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98) 
REMOTE_ADDR <!--REMOTE_ADDR--> の部分が、送信者のIPアドレスに置き換わります。
例: 192.168.0.3
REMOTE_HOST <!--REMOTE_HOST--> の部分が、送信者のホスト名(逆引き可能な場合)に置き換わります。
例: aa.hoge.com
DATE <!--DATE--> の部分が、メールフォームから送信した日時に置き換わります。例: 2001年10月07日(日) 08:32:22
 
■ 機能・環境設定

すべての機能設定、環境設定は、「mpconfig.cgi」で行います。すべて重要な設定項目ですので、もれなく説明を読んでいただき、お好みにあわせて設定してください。

#!/usr/local/bin/perl
######################################################################
# MP Form Mail CGI Ver2.2
# (設定用スクリプト)
# Copyright(C) futomi 2001
# http://www.futomi.com/
######################################################################

# 必ずすべての設定項目に目を通していただき、お使いの環境に合わせてくだ
# さい。


######################################################################
# 最低限必要な設定
######################################################################

#--------------------------------------------------------------------
#■メール送信先アドレスの設定
# フォームから送信されたメールを受信するメールアドレスを指定して下さ
# い。フォームから送られたメールは、ここで指定するメールアドレスに届
# きます。
#--------------------------------------------------------------------
$MailTo = 'hoge@foo.bar.co.jp';


#--------------------------------------------------------------------
#■デフォルトのメール送信元アドレス
# 送信メールの差出人のメールアドレスの設定です。フォーム内に name属性
# 「mailaddress」がある場合には、そちらが優先されます。
#--------------------------------------------------------------------
$From = 'hoge@foo.bar.co.jp';

#--------------------------------------------------------------------
#■リダイレクト先URL
# フォームから送信した後に表示されるページのURLを指定します。
# 必ず、http:// から指定して下さい。
#--------------------------------------------------------------------
$RedirectUrl = 'http://www.bar.co.jp/~hoge/thanx.html';


#--------------------------------------------------------------------
#■sendmailの指定(フルパスで指定して下さい。)
# sendmailのパスは、お使いのプロバイダにお尋ねください。
#--------------------------------------------------------------------
$Sendmail = '/usr/lib/sendmail';


#--------------------------------------------------------------------
#■必須の項目指定
# フォーム内で、未記入、未選択を許可しない項目を指定します。フォーム
# HTMLファイルで指定されているname属性を指定して下さい。ここで指定さ
# れた項目が未記入もしくは未選択の場合には、エラーメッセージが表示さ
# れるようになります。
#--------------------------------------------------------------------
@NecessaryNames = ('おなまえ', 'mailaddress', 'subject');


#--------------------------------------------------------------------
#■デフォルトのメールサブジェクト
# 送られてくるメールのタイトル(サブジェクト)の設定です。フォーム内
# に name属性「subject」が存在する場合には、そちらが優先されます。
#--------------------------------------------------------------------
$Subject = "お問い合わせ";


#--------------------------------------------------------------------
#■このCGIのURLマニュアル設定
# 「mpmail.cgi」は、自分のURLを自動認識しますが、一部のサーバ環境にお
# いては正しく認識しない場合があります。その場合には、マニュアルで、
# 「mpmail.cgi」のURLを設定して下さい。
# 自動認識で正しく動作する場合には、
# MANUAL_THIS_URL = '';
# として下さい。
# 指定する場合には、http:// から正しく設定して下さい。
# 例: $MANUAL_CGIURL = 'http://www.hoge.com/cgi-bin/acc.cgi';
#--------------------------------------------------------------------
$MANUAL_CGIURL = '';


######################################################################
# オプション設定
######################################################################

#--------------------------------------------------------------------
#■確認画面表示設定
# メールを送信する前に確認画面を表示するかを設定します。確認画面には
# 次で設定する確認画面用テンプレートHTMLが表示されます。ただ、添付フ
# ァイルがある場合には、確認画面表示設定を「表示する」に設定したとし
# ても、確認画面は表示されませんのでご注意下さい。
# 0:表示しない
# 1:表示する
#--------------------------------------------------------------------
$ConfirmFlag = 1;


#--------------------------------------------------------------------
#■フォームメールフォーマットカスタマイズ
# フォームから送信される内容をカスタマイズする場合には「1」を指定し
# て下さい。カスタマイズの場合には、次の「メールのテンプレートファイ
# ルの指定」を設定して下さい。
# 規定のフォーマットでよい場合には、「0」を指定して下さい。
#--------------------------------------------------------------------
$MailFormatCustomizeFlag = 0;


#--------------------------------------------------------------------
#■メールのテンプレートファイルの指定
# ここで指定したテキストファイルの内容をもとにメールを送信します。上
# のフォームメールフォーマットカスタマイズ設定で「1」と設定されている
# 場合に有効です。メールテンプレートファイルの記述方法は、添付の
# 「ReadMe.html」をご覧下さい。
#--------------------------------------------------------------------
$MailTempFile = './mail.txt';


#--------------------------------------------------------------------
#■自動返信メール設定
# フォームから送信した後、自動返信をするかどうかを設定します。自動返
# 信するためには、フォーム内に name属性「mailaddress」が必須となりま
# す。name属性「mailaddress」で入力されたメールアドレスに返信します。
# 返信メールは、次に設定する「自動返信メールテンプレートファイルの指
# 定」で指定されたテキストファイルの内容となります。記述方法は添付の
# 「ReadMe.html」をご覧下さい。
# 0: 返信しない, 1: 返信する
#--------------------------------------------------------------------
$ReplyFlag = 0;


#--------------------------------------------------------------------
#■自動返信メール用送信元メールアドレス
# 自動返信メールの差出人となるメールアドレスの設定です。主に、あなた
# のメールアドレスを設定することとなります。
# 自動返信メール設定をONにする場合は、必ず正しいメールアドレスを指定
# して下さい。
# 例:
# $FromAddrForReply = 'for@hoge.com';
#--------------------------------------------------------------------
$FromAddrForReply = '';


#--------------------------------------------------------------------
#■自動返信メール用サブジェクト
# 自動返信メールのサブジェクトを設定して下さい。
# 自動返信メール設定をONにする場合は、必ず正しいメールアドレスを指定
# して下さい。
# 例:
# $SubjectForReply = 'お問い合わせありがとうございました';
#--------------------------------------------------------------------
$SubjectForReply = 'お問い合わせありがとうございました';


#--------------------------------------------------------------------
#■確認画面テンプレートHTMLファイルの指定
# 確認画面で表示するためのHTMLファイルを指定して下さい。確認画面用テ
# ンプレートの記述方法は、添付のReadMe.htmlをご覧下さい。
#--------------------------------------------------------------------
$ConfirmTempFile = './confirm.html';


#--------------------------------------------------------------------
#■エラー画面テンプレートHTMLファイルの指定
# エラー画面で表示するためのHTMLファイルを指定して下さい。エラー画面
# 用テンプレートの記述方法は、添付の ReadMe.htmlをご覧下さい。
#--------------------------------------------------------------------
$ErrorTempFile = './error.html';


#--------------------------------------------------------------------
#■添付ファイルを格納するディレクトリパス
# 添付ファイルがある場合には、暫定的にファイルを作成します。その作業
# 用ディレクトリを指定して下さい。最後に「/(スラッシュ)」を入れない
# で下さい。
#--------------------------------------------------------------------
$AttachmentDir = './attachment';


#--------------------------------------------------------------------
#■自動返信メールテンプレートファイルの指定
# ここで指定したテキストファイルの内容を、自動返信します。上の自動返
# 信メール設定で「返信する」と設定されている場合に有効です。自動返信
# メールテンプレートファイルの記述方法は、添付の「ReadMe.html」をご
# 覧下さい。
#--------------------------------------------------------------------
$ReplyTempFile = './reply.txt';


#--------------------------------------------------------------------
#■添付ファイル削除設定
# 添付ファイルがある場合には、暫定的にファイルを作成しますが、そのフ
# ァイルを削除するかどうかを設定します。プロバイダーでの契約容量を無
# 駄に消費しますので、削除することをお勧めします。
# 0:残す
# 1:削除する
#--------------------------------------------------------------------
$AttachmentDelFlag = 1;


#--------------------------------------------------------------------
#■添付ファイルのサイズ上限(バイト)
# 添付ファイルのサイズの上限を設定します。単位はバイトです。添付ファ
# イルがある場合には、暫定的にサーバ上にファイルを作成します。そのこ
# とを考慮に入れて適切なサイズに設定して下さい。
# 目安として、「1048576」(1MB)あたりをお勧めします。
#--------------------------------------------------------------------
$AttachmentMaxSize = 1048576;


#--------------------------------------------------------------------
#■入力フォームの文字制限設定
# 各フォームでの入力文字数の上限を設定します。主にテキストエリアでの
# 制限にご利用ください。ただ、この設定はすべてのフォームに適応されま
# す。したがって、小さすぎる値を設定すると、利用できなくなりますので
# ご注意下さい。入力文字数の単位は、半角での文字数です。 「0」を指定
# すると、文字数制限なしとなります。
#--------------------------------------------------------------------
$MaxInputChar = 0;


#--------------------------------------------------------------------
#■ログ出力設定
# 送信されたメールのデータをログに出力するかどうかを設定します。ログ
# フォーマットについては、添付のReadMe.htmlをご覧下さい。
# 0: ログファイルに出力しない。
# 1: ログファイルに出力する。
#--------------------------------------------------------------------
$LogingFlag = 0;


#--------------------------------------------------------------------
#■ログファイル指定
# 上の「ログ出力設定」で出力すると設定した場合には、必ず設定して下さ
# い。特別なことが無い限りは、以下のとおり、デフォルトの設定で問題あ
# りません。
# $LogFile = './maillog.cgi';
# ログファイルの拡張子が「.cgi」なのは、セキュリティーを確保するため
# です。「.log」や「.txt」では、プロバイダーのサーバ仕様によってはブ
# ラウザーから見られてしまいますので、ログの拡張子は、「.cgi」とする
# ことをお勧めします。
#--------------------------------------------------------------------
$LogFile = './maillog.cgi';


#--------------------------------------------------------------------
#■ログファイルフォーマット指定
# ログファイルのフォーマットは以下の2種類です。
# 0: valueのみの形式
# 1: name=value の形式
# Excel等で読み込む場合には、valueのみの形式としてください。
#
# 【Example】
# <input type="radio" name="お使いのOS" value="Windows">
# <input type="radio" name="お使いのOS" value="Machintosh">
# 上記のようなフォームの場合、Windowsを選択したとします。
# フォーマット「0」の場合には、
# Windows
# フォーマット「1」の場合には、
# お使いのOS=Windows
# とロギングされます。その他の項目とは次で指定する区切り文字で区切ら
# れ、1回の投稿につき1行のログが出力されます。
#--------------------------------------------------------------------
$LogFormat = 0;


#--------------------------------------------------------------------
#■ログファイルの区切り文字指定
# 1:カンマ区切り(CSV形式)
# 2:スペース区切り
# 3:タブ区切り
#--------------------------------------------------------------------
$Delimiter = 1;


#--------------------------------------------------------------------
#■シリアル番号の利用設定
# 各メールに対して、ユニークな番号を生成します。送信時間と送信元IPア
# ドレスから生成します。そして、メール内にシリアル番号が記載されます。
# そして、返信メールテンプレートに <!--sirial--> と記載すると、その部
# 分がシリアル番号に置き換わります。また、ログファイルにもシリアル番
# 号が記録されます。
# 0:利用しない
# 1:利用する
#--------------------------------------------------------------------
$SirialFlag = 0;


#--------------------------------------------------------------------
#■利用禁止ホストの指定
# ここで指定したホストからのアクセスは受け付けないようにすることがで
# きます。アクセス元が、ここで指定した条件に一致すると、エラーが表示
# されます。
# IPアドレスでの指定、ホスト名での指定どちらでも可能です。
# またホスト名で指定した場合、後方一致ですのでドメインごと対象外にす
# ることも可能です。IPアドレスでの指定の場合には、逆に前方一致となり
# ます。
#
# 例:
# @REJECT_HOSTS = ('hoge.com', '10.1.1.');
# この場合、ドメインhoge.comからのアクセスはすべて対象外となります。
# またIPアドレスが 10.1.1.* からのアクセスもすべて対象外となります。
# 何も指定しない場合には、
# @REJECT_HOSTS = ();
# としてください。
#--------------------------------------------------------------------
@REJECT_HOSTS = ();


#--------------------------------------------------------------------
#■利用禁止ホストからのアクセス時に出力するエラーメッセージの指定
# 上の設定で指定された「利用禁止ホスト」の条件に一致するホストからア
# クセスがあった場合、ここで指定したメッセージを表示します。
#--------------------------------------------------------------------
$REJECT_ERR_MSG = 'ご利用いただけません';


#--------------------------------------------------------------------
#■添付ファイルの拡張子限定
# ここで指定した拡張子のファイルのみを添付して送ることができるように
# することができます。指定外の拡張子をもったファイルを添付して送信し
# ようとすると、エラーが表示されます。
#
# 例:
# @EXT_RESTRICT = ('gif', 'jpg');
# この場合、拡張子が「gif」もしくは「jpg」のファイルのみを添付して送
# 信できるように限定します。それ以外のファイルを送信しようとすると、
# エラーを表示します。
# 添付ファイルの拡張子の限定をしない場合には、
# @EXT_RESTRICT = ();
# としてください。この場合は、どのようなファイルでも送ることができます。
#--------------------------------------------------------------------
@EXT_RESTRICT = ();


#--------------------------------------------------------------------
#■外部サーバからの利用禁止設定
# このCGIを使って、まったく別のページから勝手にメールを送信されないよ
# うに、フォームのURLを限定することができます。CGIの利用を許可するフォ
# ームのURLを指定して下さい。指定がない場合には、制限は一切かかりませ
# ん。ここで指定するURLのパターンマッチは、すべて前方一致です。
#
# 例:
# フォームのURLが、http://www.hoge.com/form.html の場合、
# @AllowFormUrls = ('http://www.hoge.com/form.html');
#
# 複数のフォームが存在し、それがすべて http://www.hoge.com/ 内にある
# 場合には、
# @AllowFormUrls = ('http://www.hoge.com/');
# これで、http://www.hoge.com/配下のページからのアクセスはすべて許可
# します。
#
# 複数のドメインからの利用を許可する場合には、
# @AllowFormUrls = ('http://www.foo.com/', 'http://www.bar.com/');
# のように指定します。
#
# 【制限事項】
# この機能は、ブラウザーが送ってくる参照元URL(HTTP_REFERER)を使っ
# ています。もしこの機能を使った場合、HTTP_REFERERを送信しないブラ
# ウザーからアクセスした場合、エラーとなってしまいますので、ご注意
# ください。(i-modeなど)
#--------------------------------------------------------------------
@AllowFormUrls = ();


#--------------------------------------------------------------------
#■簡易英文ワードラップ・折返設定
# フォームから送られてくるメールや、自動返信メールの英文ワードラップ、
# 折返を行います。指定文字数は50以上にしてください。50未満の場合には
# 設定が無効となります。指定文字数は、半角文字数です。概ね70程度にす
# ることをお勧めします。
# 現時点では、英文の場合に限り、「.」「,」の行頭禁則処理が施されます
# が、その他の禁則処理は一切行いませんのでご注意ください。
# 英文ワードラップ・折返を行わない場合には、
# $WRAP = 0;
# として下さい。
#--------------------------------------------------------------------
$WRAP = 70;


#--------------------------------------------------------------------
# これ以降は、決して削除しないで下さい。
#--------------------------------------------------------------------
return 1;

 
トラブルシューティング
  • 確認画面が表示された後、送信しようとすると、エラーがでる。
  1. mpconfig.cgiのリダイレクト先URLの指定は正しく設定されていますか? かならず http:// から指定して下さい。
  2. ご利用のサーバがCGI Wrapperを実装している場合に、うまくいかない場合があります。この場合には、確認画面用テンプレートファイル「confirm.html」を以下のとおり、書き換えて下さい。
  • <form>タグの1行前に、<!--<!--cgiurl-->--> を書き足して下さい。
  • <form>タグ内のaction指定には、<!--cgiurl--> となっているはずですが、ここにはフォーム用HTMLに記載したCGIのURLと同じものに書き換えてください。
<!--<!--cgiurl-->-->
<form method="POST" action="http://www.foo.com/bar/mpmail/mpmail.cgi" 
enctype="multipart/form-data">

 

 
■ 制限・注意事項
  • sendmailが利用できないサーバではご利用になれません。
  • 添付ファイルがある場合には、確認画面を表示することはできません。
  • 「mpmail.cgi」は、SJISで作成されており、それが前提で動作します。他の文字コードに変換すると動作しなくなりますので、ご注意ください。
  • 各種テンプレート「confirm.html」「error.html」「reply.txt」はすべてSJISで作成されていることを前提に動作します。他の文字コードで作成されますと、正しく動作しませんので、ご注意ください。
  • 添付ファイルがある場合、サーバ上に一時的にそのファイルを作成します。もし、プロバイダーの契約容量に空きが不足している場合、正しく動作しませんので、ご注意ください。
  • 各入力フォームに「,(カンマ)」が入力された場合、すべて全角カンマに変換されます。
  • テキストフィールドに改行が含まれている場合、ログには <br> に変換されて保存されます。
  • 外部サーバからの利用禁止設定機能は、ブラウザーが送ってくる参照元URL(HTTP_REFERER)を使っています。HTTP_REFERERを送信しないブラウザーからアクセスした場合、エラーとなってしまいますので、ご注意ください。(i-modeなど)
  • 簡易折返・英文ワードラップ機能は、完全な機能ではありません。禁則処理は行いませんのでご注意ください。
 
■ バージョンアップ履歴

【Ver 2.1 → Ver 2.2】 2001/10/08

  • 簡易折返・英文ワードラップ機能を追加。
  • メールフォーマットカスタマイズ機能追加。
  • メールのサブジェクトに「0」が含まれると、それ以降無視されるバグを改修
  • 自URLは、自動認識だったが、一部のサーバにおいて正しく認識されなかったため、マニュアル設定を設けた。

【Ver 2.0 → Ver 2.1】 2001/08/21

  • ログの区切り文字を「タブ」「スペース」と指定しているにも関わらず、一部の区切りにカンマが入ってしまうバグを修正
  • メールアドレスのアカウントが一文字の場合に、エラーとなってしまうバグを修正

【Ver 1.3 → Ver 2.0】 2001/07/29

  • 利用禁止ホスト指定機能の追加(IPアドレス、ドメインで指定)。
  • 添付ファイルの拡張子の限定機能追加。
  • 外部サーバからの利用禁止機能追加。

【Ver 1.2 → Ver 1.3】 2001/07/07

  • ファイルを添付して送信した場合に、最後のデータが欠落することがあるというバグを改修。

【Ver 1.1 → Ver 1.2】 2001/06/09

  • ログに送信日時を記録するようにした。
  • 各メール送信ごとにシリアル番号を付与するようにした。シリアル番号は、指定先のメール、返信メール、ログに記載できるようにした。
  • 指定の上限ファイルサイズを超えて添付ファイルを送信しようとした場合、添付ファイル作業ディレクトリ「attachment」にそのファイルが残ってしまうバグを改修。
  • 設定ファイル「mpconfig.pl」のファイル名を「mpconfig.cgi」に変更。これは一部のサーバにおいて、拡張子が「.pl」のファイルを実行ファイルと認識せず、テキストファイルのように扱われ、直接ブラウザーでアクセスすると、中身が見られてしまうための対処。

【Ver 1.0 → Ver 1.1】 2001/04/21

  • 入力項目に、HTMLタグが入力されると、送信メールやログではその入力項目の一部が欠落するバグを改修
  • 確認画面表示モードがOFFの場合、「<」, 「>」が「&lt;」「&gt;」のままでメール送信とロギングをしてしまうバグを改修
  • 確認画面表示モードがONの場合、メール送信しようとすると「サーバが見つからない」という現象が、一部の環境で発生するバグを改修

 

 

futomi's CGI Cafe