MP Form Mail CGI Standard 版をご利用いただくためには、設定を行わなければいけません。本 CGI は、mpmail/conf/config.cgi を編集することで設定を定義します。このファイルをテキストエディターで開き、ご利用の環境に合わせて編集してください。編集したら、サーバに config.cgi を上書きアップロードします。ただし、アップロードする際には、必ず ASCII (テキスト)モードで転送してください。BINARY モードや転送モード自動認識では正しく動作しませんので、ご注意下さい。
設定の内容は大きく分けて 3 つのパートに分かれています。「最低限必要な設定」は、必ず全項目を設定してください。「オプション設定」はお好みに合わせて設定してください。もう一つ「システム設定」というパートがありますが、この設定パートは主にデバッグ用に用意されたものです。通常は変更する必要はありません。本マニュアルでは説明しておりませんが、詳細は設定ファイル config.cgi 内に記載されておりますので、そちらをご覧下さい。
■ メール送信先アドレスの設定
フォームから送信されたメールを受信するメールアドレスを指定して下さい。フォームから送られたメールは、ここで指定するメールアドレスに届きます。
【設定例】
$c{'MAILTO'} = 'info@futomi.com';
もし複数のアドレスを指定したい場合は、それぞれのメールアドレスを半角カンマで区切ってください。
【設定例】
$c{'MAILTO'} = 'taro@futomi.com,jiro@futomi.com';
3 つ以上のメールアドレスを指定する場合にも同様です。
■ デフォルトのメール送信元アドレス
送信メールの差出人のメールアドレスの設定です。フォーム内に name属性「mailaddress」がある場合には、そちらが優先されますが、なければ、ここで設定した値が適用されます。ここで定義するメールアドレスは、あなたが保有するメールアドレスであれば何でも構いませんが、いらぬトラブルを避けるためにも、「■ メール送信先アドレスの設定」で定義したアドレスとは別のアドレスを指定することをお勧めします。
【設定例】
$c{'FROM'} = 'jimukyoku@futomi.com';
■ リダイレクト先URL
フォームから送信した後に表示されるページのURLを指定します。主に、完了画面となるようなページを事前に用意していただき、そのURLをここに指定してください。実在しないページURLを指定すると、フォームから投稿後、エラーとなってしまいますので、注意してください。この設定は、必ず、http:// から指定して下さい。
【設定例】
$c{'REDIRECT_URL'} = 'http://www.futomi.com/other/thanx.html';
■ name属性リスト
フォームHTMLの入力・選択項目すべてのname属性値を定義してください。name属性値は、かならず半角英数のみで指定してください。記号や日本語を指定することはできませんので、注意してください。
またname属性値の先頭は必ず半角英字としてください。数字を先頭に指定することはできません。
なお、メールアドレスは必ず mailaddress としてください。またファイルを添付する場合には、その項目は attachment としてください。これらの項目を別名で指定しても、認識されませんので、ご注意下さい。
【設定例】
$c{'NAMES'} = [
'name',
'mailaddress',
'subject',
'opinion',
'attachment'
];
以下の name属性は予約語となっております。適宜ご利用ください。
| name属性名 |
説明 |
| mailaddress |
name 属性名を「mailaddress」とすると、それに入力された値は、入力者のメールアドレスとみなし、返信メールの送信先アドレスに指定します。また、自動的に入力値チェックを行いますので、全角での入力や、メールアドレスとしては、不適切な文字列が入力されると、エラーを返します。自動返信メール送信機能を使う場合には、必ずメールアドレスの欄の name 属性名を「mailaddress」にして下さい。 |
| subject |
name 属性名を「subject」とすると、送られてくるメールのサブジェクトにします。「subject」がないと、「mpconfig.cgi」で「■デフォルトのメールサブジェクト」で設定したものが割り当てられます。 |
| attachment |
添付ファイルを付けたい場合には、name 属性を「attachment」としてください。「attachment」と指定しないと、添付ファイルとしてみなしませんので、ご注意ください。 |
■ name属性表示名マッピング
「name属性リスト」で定義したすべてのname属性に対して、その項目名称を定義してください。エラー画面や送信メール(規定のフォーマットの場合)の表示の際に適用されます。
【設定例】
$c{'NAME_MAP'} = {
'name' => 'お名前',
'mailaddress' => 'メールアドレス',
'subject' => 'サブジェクト',
'opinion' => '感想',
'attachment' => '添付ファイル'
};
■ デフォルトのメールサブジェクト
送られてくるメールのタイトル(サブジェクト)の設定です。フォーム内に name属性「subject」が存在する場合には、そちらが優先されますが、フォーム内に name属性「subject」が存在しなければ、ここで設定したサブジェクトが適用されます。
【設定例】
$c{'SUBJECT'} = 'お問い合わせ';
サブジェクト内に、フォームで入力された値を挿入することもできます。name属性値を $ で囲んで記述すれば、その部分がフォームで入力された値に置き換わります。
【設定例】
$c{'SUBJECT'} = 'お問い合わせ($name$)';
例えば、上記のように設定したとして、お名前欄に"山田 太郎"と入力された場合には、このサブジェクトは「お問い合わせ(山田 太郎)」に変換されます。
■ 必須の項目指定
フォーム内で、未記入、未選択を許可しない項目を指定します。フォームHTMLファイルで指定されているname属性を指定して下さい。ここで指定された項目が未記入もしくは未選択の場合には、エラーメッセージが表示されるようになります。
【設定例】
$c{'NECESSARY_NAMES'} = ['name', 'mailaddress'];
この例では、name属性 name, mailaddress の入力欄(お名前とメールアドレス欄)に何も入力されなかった場合に、エラーが表示されることになります。
■ 確認画面表示設定
メールを送信する前に確認画面を表示するかを設定します。確認画面には次で設定する確認画面用テンプレートHTMLが表示されます。ただ、添付ファイルがある場合には、確認画面表示設定を「表示する」に設定したとしても、確認画面は表示されませんのでご注意下さい。
0 を指定すると「表示しない」を表し、1 を指定すると「表示する」を表します。
【設定例】
$c{'CONFIRM_FLAG'} = 1;
この例では、確認画面を表示する設定を意味します。
■ フォームメールフォーマットカスタマイズ
MP Form Mail CGI は、フォームから送信されてくるメール本文を自動的に生成しますが、ご自分で自由にカスタマイズすることも可能です。カスタマイズしたい場合には 1 を指定して下さい。カスタマイズの場合には、mpmail/template/mail.txt を編集して下さい。編集方法に関しては、本マニュアルの「メール編集」の欄をご覧下さい。規定のフォーマットでよい場合には、0 を指定して下さい。
【設定例】
$c{'FORMAT_CUSTOM_FLAG'} = 0;
この例では、規定のフォーマットを採用する設定を意味します。
■ 自動返信メール設定
フォームから送信した後、自動返信をするかどうかを設定します。自動返信メールを送信したい場合には 1 を、送信しない場合には 0 を指定して下さい。
【設定例】
$c{'REPLY_FLAG'} = 1;
この例では、自動返信メールを送信することを表します。
自動返信するためには、フォーム内に name属性「mailaddress」が必須となります。name属性「mailaddress」で入力されたメールアドレスに返信します。返信メールの本文は、mpmail/template/reply.txt で定義します。編集方法に関しては、本マニュアルの「返信メール編集」の欄をご覧下さい。
■ 自動返信メール用送信元メールアドレス
自動返信メールの差出人となるメールアドレスの設定です。主に、あなたのメールアドレスを設定することとなります。自動返信メールを受信した人が返信する際の宛先になりますので、必ず受信可能なメールアドレスを間違いのないよう指定してください。
【設定例】
$c{'FROM_ADDR_FOR_REPLY'} = 'taro@futomi.com';
この例では、自動返信メールを送信することを表します。
この設定は自動返信メールを送信する場合に必須の項目です。自動返信メールを送信しない場合には、設定する必要はありません。
■ 自動返信メールの差出人名
自動返信メールの差出人名の設定です。主に、あなたの会社名もしくはあなたのお名前を設定することとなります。自動返信メールを受け取った方のメールソフトの差出人欄に表示されます。
この設定は必須ではありません。もし不要でしたら、次のようにしてください。
【設定例】
$c{'SENDER_NAME_FOR_REPLY'} = '';
差出人名を設定する場合には、次のように設定します。
【設定例】
$c{'SENDER_NAME_FOR_REPLY'} = '○○株式会社';
この例では、自動返信メールを受け取った人のメールソフト上の差出人欄には、「○○株式会社"<taro@futomi.com>」といった具合に表示されます。(実際には、受信者が使っているメールソフトによって表示方法が異なります。)
■ 自動返信メール用サブジェクト
自動返信メールのサブジェクトを設定です。
【設定例】
$c{'SUBJECT_FOR_REPLY'} = 'お問い合わせありがとうございました';
この設定は自動返信メールを送信する場合に必須の項目です。自動返信メールを送信しない場合には、設定する必要はありません。
■ 宛先不明のエラーメールを受信するメールアドレス
自動返信メールの宛先が不明だった場合や、何かしらの原因で送信できなかった、もしくは相手側のメールサーバで受付できなかった場合には、該当のメールサーバからエラーメールが返ってきます。通常は、「■自動返信メール用送信元メールアドレス」で指定したメールアドレスにエラーメールが返ってきますが、もしエラーメールに関しては別のメールアドレスで受けたい場合には、ここで指定します。
【設定例】
$c{'ERRORS_TO'} = 'error@futomi.com';
なお、エラーメールが受け取れるかどうかは、ご利用サーバによります。必ずしもエラーメールが受け取れるわけではありませんので、ご了承下さい。
自動返信メールを送信しない場合や、個別にメールアドレスを指定する必要がない場合には、設定する必要はありません。その場合には、次のように指定しておいてください。
【設定例】
$c{'ERRORS_TO'} = '';
■ 添付ファイルのサイズ上限(バイト)
添付ファイルのサイズの上限を設定します。単位はバイトです。添付ファイルがある場合には、暫定的にサーバ上にファイルを作成します。ご利用のサーバにディスク空き容量がないと、正しく添付ファイルを処理することができませんので、そのことを考慮に入れて適切なサイズに設定して下さい。
また、ファイルを添付してメールを送信する際には、該当のファイルをいったん、サーバメモリーにロードします。レンタルサーバでは、通常、CGIが消費するメモリーサイズに上限が設けられておりますので、サイズが大きいファイルが添付されるとエラーになってしまいます。ご利用のサーバのCGIメモリー消費量上限は、レンタルサーバ事業者によって大きく異なりますので、一概にはいえませんが、目安として、「1048576」(1MB)程度をお勧めします。
いたずら防止のためにも、必ず上限を設定してください。
【設定例】
$c{'ATTACHMENT_MAX_SIZE'} = 1048576;
■ 入力フォームの文字制限設定
各フォームでの入力文字数の上限を設定します。主にテキストエリアでの制限にご利用ください。この設定はすべてのフォームに適応されます。フォームの項目ごと個別に指定することはできません。そのため、小さすぎる値を設定すると、利用できなくなりますのでご注意下さい。
入力文字数の単位は、半角での文字数、つまりバイトです。 0 を指定すると、文字数制限なしとなりますが、いたずら防止のためにも、ある程度の上限を設けることをおすすめします。
【設定例】
$c{'MAX_INPUT_CHAR'} = 1024;
■ ログ出力設定
フォームで受け付けたデータを、CSV等のフォーマットでログファイルに記録するかどうかを設定します。ログを出力する場合は 1 を、出力しない場合は 0 を指定してください。
【設定例】
$c{'LOGING_FLAG'} = 0;
この例は、ログを出力しない設定を意味します。なお、ログを特に必要としない場合には、決して 1 を指定しないでください。もし個人情報のような機密情報をフォームで受け付けている場合には、サーバにその情報が残っているだけでも、漏洩リスクとなりえます。もしログを出力する場合には、こまめにログファイルを取り出し、サーバから削除するよう心掛けてください。ログを出力する設定にすると、ログファイルは、mpmail/logs/maillog.cgi として生成されます。
■ ログファイルフォーマット指定
ログファイルのフォーマットは以下の2種類から選択できます。0 を指定すすると、入力された値のみが記録されます。1 を指定すると、「name属性値=入力値」という形式で記録されます。
<input type="radio" name="OS" value="Windows">
上記のようなラジオボタンのフォームがあったとします。0 を指定した場合には、Windows という値のみが、1 を指定した場合には OS=Windows とログファイルに記録されます。その他の項目とは「■ログファイルの区切り文字指定」で指定する区切り文字で区切られ、1回の投稿につき1行のログが出力されます。
もし表計算ソフトでログファイルを読み込みたいのであれば、0 を指定するのが良いでしょう。
【設定例】
$c{'LOG_FORMAT'} = 0;
■ ログファイルの区切り文字指定
1回の投稿につき、いくつもの項目の値を取得するわけですが、ログファイルには、1回の投稿につき1行で出力されます。そのため、項目を区切るための文字を指定する必要があります。1 を指定するとカンマ区切り(CSV形式)、2 を指定するとスペース区切り、3 を指定するとタグ区切りとなります。
【設定例】
$c{'DELIMITER'} = 1;
この例では、カンマ区切りを表します。
■ シリアル番号の利用設定
各メールに対して、ユニークな番号を生成します。送信時間と送信元IPアドレスから生成します。そして、メール内にシリアル番号が記載されます。そして、返信メールテンプレートに $SIRIAL$ と記載すると、その部分がシリアル番号に置き換わります。また、ログファイルにもシリアル番号が記録されます。シリアル番号を利用するには 1 を、利用しないのであれば 0 を指定してください。
【設定例】
$c{'SIRIAL_FLAG'} = 1;
この例では、シリアル番号を利用することを表します。
■ 利用禁止ホストの指定
ここで指定したホストからのアクセスは受け付けないようにすることができます。アクセス元が、ここで指定した条件に一致すると、エラーが表示されます。IPアドレスでの指定、ホスト名での指定どちらでも可能です。
またホスト名で指定した場合、後方一致ですのでドメインごと対象外にすることも可能です。IPアドレスでの指定の場合には、前方一致となります。
【設定例】
$c{'REJECT_HOSTS'} = ['hoge.com', '10.1.1.'];
この場合、アクセス元がhoge.comドメインであれば受付を拒否して、エラーを表示します。さらに、IPアドレスが 10.1.1.* であっても、受付を拒否します。
何も指定しない場合には、次のように記述してください。
【設定例】
$c{'REJECT_HOSTS'} = [];
■ 利用禁止ホストからのアクセス時に出力するエラーメッセージの指定
上の設定で指定された「利用禁止ホスト」の条件に一致するホストからアクセスがあった場合、ここで指定したメッセージを表示します。
【設定例】
$c{'REJECT_ERR_MSG'} = 'ご利用いただけません';
■ 添付ファイルの拡張子限定
ここで指定した拡張子のファイルのみを添付して送ることができるようにすることができます。指定外の拡張子をもったファイルを添付して送信しようとすると、エラーが表示されます。
【設定例】
$c{'EXT_RESTRICT'} = ['gif', 'jpg'];
この場合、拡張子が「gif」もしくは「jpg」のファイルのみを添付して送信できるように限定します。それ以外のファイルを送信しようとすると、エラーを表示します。添付ファイルの拡張子の限定をしない場合には次のように記述します。
【設定例】
$c{'EXT_RESTRICT'} = [];
この場合は、どのようなファイルでも送ることができます。
■ 外部サーバからの利用禁止設定
このCGIを使って、まったく別のページから勝手にメールを送信されないように、フォームのURLを限定することができます。CGIの利用を許可するフォームのURLを指定して下さい。指定がない場合には、制限は一切かかりません。ここで指定するURLのパターンマッチは、すべて前方一致です。
フォームのURLが、http://www.hoge.com/form.html の場合は次のように記述します。
【設定例】
$c{'ALLOW_FROM_URLS'} = ['http://www.hoge.com/form.html'];
複数のフォームが存在し、それがすべて http://www.hoge.com/ 内にある場合には、次のように記述します。
【設定例】
$c{'ALLOW_FROM_URLS'} = ['http://www.hoge.com/'];
これで、http://www.hoge.com/配下のページからのアクセスはすべて許可します。
複数のドメインからの利用を許可する場合には、次のように複数指定することも可能です。
【設定例】
$c{'ALLOW_FROM_URLS'} = ['http://www.foo.com/', 'http://www.bar.com/'];
この機能は、ブラウザーが送ってくる参照元URL(HTTP_REFERER)を使っています。もしこの機能を使った場合、HTTP_REFERERを送信しないブラウザーからアクセスすると、エラーとなってしまいます。また、ウィルス対策ソフトによっては、参照元URL(HTTP_REFERER)情報をカットしてしまう場合があります。このようなソフトをインストールしたパソコンからのアクセスも拒否されてしまいますので、ご注意ください。
■ 簡易英文ワードラップ・折返設定
フォームから送られてくるメールや、自動返信メールの英文ワードラップ、折返を行います。指定文字数は50以上にしてください。50未満の場合には設定が無効となります。指定文字数は、半角文字数です。概ね70程度にすることをお勧めします。
英文の場合に限り、「.」「,」の行頭禁則処理が施されますが、その他の禁則処理は一切行いませんのでご注意ください。
【設定例】
$c{'WRAP'} = 70;
複数のフォームが存在し、それがすべて http://www.hoge.com/ 内にある場合には、次のように記述します。
【設定例】
$c{'WRAP'} = 0;