Web-UP CGIを駆使してWebサイトの運営効果を思いっきり上げる!

ホーム > CGI配布コーナー > Calc-Mail お問い合わせ


Calc-Mail



あなたのホームページはだいじょうぶですか?
買物途中でのショッピングカート放棄率はなんと67.1%!

引用:株式会社インプレスレッド・シェリフ株式会社
(両社様から引用許可済み)


つまり、せっかく商品をカゴに入れていただいても、なんと10人中7人近くは途中で買物をやめてしっているのです。
これでは、どんなに一生懸命検索エンジン対策をしても、多額の広告費をかけても7割は水の泡になってしまいます。
多くのネットショップは、これまでにいったいどれほどの損失を被っていたのでしょうか・・・。


ネット利用者数が毎年伸び続けている現在、ネット通販を利用するお客様の全てがパソコン操作やネットに習熟しているヘビーユーザーというわけではありません。
むしろ、これから新規のお客様となっていただく方の中には、パソコン・ネット初心者の方が多く含まれていると考えたほうが自然でしょう。

とくにネット通販利用経験の浅いお客様にとっては、ショッピングカートの仕組みはまだまだ理解しづらい(カゴに入れると言われても、実際にカゴが目に見えるわけではありません)ことと、購入の最終決定までのプロセスが長すぎるために、途中で嫌気がさしてしまい、買物を途中でやめてしまっているのが実情です。

ネット通販というと、ショッピングカートの導入が常識と思われているサイトオーナー様が多いと思います。しかし、その常識を正しいと信じた結果、7割弱というあまりにも高いショッピングカート放棄率を生み出しています。本当にショッピングカートの導入はネットショップを利用するお客様にとって優しい配慮だといえるのでしょうか・・?

サイトオーナー様にとって通販サイトを制作・運営することは自分の仕事ですから、当然のことながらホームページ制作やネットの勉強を一生懸命にします。しかしその一方で、お客様はそのような勉強はまったくしていません。つまり、ネットショップとお客様の間に「ネットに対する知識の差」、言い換えると「常識のレベルの違い」というギャップが発生しているのでが、そのギャップについていけないお客様、お客様の戸惑いに気づいていないサイトオーナー様が相当な数おられるのです。

そこで、Calc-Mail は注文フォームのシンプルさ・わかりやすさ・デザインの自由度にこだわりました!
ネットショップとお客様の距離をグッと近づけるお手伝いをいたします!


・Calc-Mail とは?
・Calc-Mail の特徴
・Calc-Mail 設置法




Calc-Mail とは?


ショッピングカート放棄率を大幅に下げる「一画面完結型」多機能ショッピングカート!
もちろん、消費税総額表示義務化にも完全対応だから安心です!

Calc-Mailなら、情報入力画面はシンプルそのものですので、ネット初心者や中高年の方にも優しく、お客様に「考えさせない」「戸惑わせない」注文画面を提供出来ます!
一画面で全ての入力が完結しますので、情報入力の為にページをあちこち移動してもらうといった余計なアクションはまったく必要ありません。
つまり、シンプル=迷わないから、あなたのショップのカート放棄率を大幅に下げることが可能なのです!

多彩な自動計算機能をはじめ、メールへの受注番号自動発行・お客様名差し込み機能までも搭載し、さらにHi-MailゆずりのCSVズレ防止機能により、エクセルなどで活用出来る売上データベースがCalc-Mailだけで完成します。メールには、購入内容と計算結果をわかりやすく記載しますので、お客様にとっても、いつ・なにを・何個買って・合計いくらの支払いなのかといったことが、簡潔明瞭に把握出来ます!

・・・しかも、さらに!!

外部オプションファイルを活用することにより、次回注文時に再び名前やメールアドレスを入力していただくといった手間を省くことが出来るので注文処理が一発で完了します!
他にも、クロネコ@ペイメントによるカード決済、お知り合いにご紹介していただく機能なども後から自由に追加することが出来ます!

(サンプル画面:新しいウィンドウが開きます)

Calc-Mailはシェアウェア(4,200円)のCGIメールフォームスクリプトです。
(Perl:バージョン5.004以上、Sendmail必須)

CGIの設置が苦手という方には、メルマガ:なるほど、これならわかる!超初心者の為のCGI設置講座がお勧めです!
現在、BBSでの設置サポートは休止中です。


[ 更新履歴 ]
・2003/03/15 v1.01b 公開
・2003/03/17 v1.02 値引きを実施した際のコメント定義を追加(conf.cgi)・メール文面に値引き情報を記載(calc-mail.cgi)
・2003/03/18 v1.03 計算を実施しなかったときCSVがズレるバグを解消(calc-mail.cgi)
・2003/03/19  v1.04  消費税サービスを無効とした場合に消費税が0円となってしまうバグを解消(calc-mail.cgi)
・2003/04/15 v1.05 年月日判定に関するバグを解消(calc-mail.cgi)
・2003/04/26 v1.06 name値に半角スペースが含まれていると計算項目を正しく認識しない症状を解消(calc-mail.cgi)
・2003/04/28 v1.07 複数行の入力においてメールに正しく反映されない症状を解消(calc-mail.cgi)
・2003/05/16 v1.08 日付の存在確認ロジックを修正(calc-mail.cgi)
・2003/06/06 v2.00 商用利用シェアウェア化に伴いバージョンを2.00に変更
CSVファイルに記載しない項目を設定した際に空値セルが挿入される不具合を修正
自動改行項目を複数設定した際に正常動作しない不具合を修正
禁止ワード設定を追加
指定条件合致時に指定項目のみCSV保存設定を追加
一部ロジック改善により動作安定度を向上
条件によるメール件名・文面変更を廃止(calc-mail.cgi conf.cgi)
・2003/07/06 v2.01 送信者宛メールが文字化けする不具合を修正(calc-mail.cgi)
・2003/09/03 v2.02 メールとCSVファイルに記載しない項目を複数設定したときのバグを修正(calc-mail.cgi)
プレビュー画面で表示しない項目設定を追加(calc-mail.cgi conf.cgi)
プレビュー画面・送信後画面でフォームからの入力項目を差し込み可能に(calc-mail.cgi conf.cgi)
・2003/10/24 v2.03 手数料を計算に含める条件設定を追加(calc-mail.cgi conf.cgi)
・2003/10/24 v2.04 送料項目のブランク値に対応(calc-mail.cgi)
・2003/10/25 v2.05 送料表示名項目を設定(calc-mail.cgi conf.cgi)
・2003/11/13 v2.06 @other_telの判定条件を修正(calc-mail.cgi)
・2004/02/24 v3.00 外部オプションファイル対応
入力データ連結機能を追加
チェックボックス選択数制御機能を追加
消費税総額表示対応
・2004/05/21 v3.01 チェックボックス連結時の不具合を修正
・2004/06/01v3.02 個別項目差し込みの不具合を修正
・2004/06/18 v3.03 初回設置時・不正利用検出時のメール送信ロジックを削除


Calc-Mail-B(都道府県別送料対応版:県名データと送料データの両方を記録します)
・2003/10/25 v2.05b 送料の料金体系テーブルを設定
・2003/10/31 v2.06b メールでの送料の表示・計算の不具合を解消(calc-mail-b.cgi)
・2003/11/13 v2.07b @other_telの判定条件を修正(calc-mail-b.cgi)
・2003/11/14 v2.08b 送料表示の不具合を解消(calc-mail.cgi)
・2004/03/27 - Calc-Mail と統合




Calc-Mail の特徴


Calc-Mail の特徴は以下の通りです。
黒字部分Hi-Mail と同一の機能、赤字部分Calc-Mail独自の機能となります。

  • New! 外部オプションファイルによる機能追加に対応しました。
  • New! 任意の入力データを任意の記号で連結し、さらに連結後のデータに任意の名称を付けることができます。
  • New! チェックボックスの選択数を、「○個未満」・「○個以下」・「○個ちょうど」・「○個以上」・「○個超」として制限することができます。
  • 送信者に自動返信をします(これは当然ですね・・・(^^; )
  • 管理者と送信者それぞれにメール送信するかどうかを別々に設定できます。
  • HTMLの表示文字コードをEUCとShift-JISから選択できます。
  • データ入力後に確認画面を表示するかしないかを設定できます。
  • メールフォームのname値には英語・日本語の両方が使えます(例:<input type=text name="趣味">など)。
  • 入力必須項目をいくつでも設定できます。
  • 入力内容が同一でないとエラーとする項目をいくつでも設定できます。
  • 半角数字のみ入力許可とする項目、半角英数字のみ入力許可とする項目をいくつでも設定できます。
  • 7桁郵便番号(ハイフン付き)の書式チェックをする項目をいくつでも設定できます。
  • カタカナと空白のみを入力許可とする項目をいくつでも設定できます。
  • 加入電話番号(ハイフン付き)の書式チェックをする項目をいくつでも設定できます。
  • 携帯電話番号(ハイフン付き)の書式チェックをする項目をいくつでも設定できます。
  • その他の電話番号(ハイフン付き)の書式チェックをする項目をいくつでも設定できます。
  • 日付の書式チェックをする項目をいくつでも設定できます。
  • 日付の書式チェックをする項目に存在しない日付が入力された場合エラーとなります(うるう年にも対応)。
  • 入力禁止とする項目をいくつでも設定できますので、フリーメールアドレスからの送信などを事前に防止できます。
  • メールアドレス・ホームページアドレスを正規表現を使って厳密に書式チェックします。これにより、せっかくメールを送ってくれた送信者の方が運悪くメールアドレスを間違って記入してしまい連絡が取れなくなるというトラブルを大幅に減らすことができます。
  • 入力文字数を制限する項目をいくつでも設定できます。
  • 送信者名に任意の敬称(例:様など)を付けることができます。これにより、管理者が送信者に返信するときに宛先が自動的に「○○様」となります。
  • 送信者と管理者それぞれに別々の件名・文面のメールを送信することができます。
  • 管理者にメール送信するときに「CC」や「BCC」で複数のアドレスに同時に送信することができます。
  • メールフォ-ムから送信されたときに自動で「通し番号」を発行するすることができます。
  • 「通し番号」には任意の名称(例:ご予約番号やお申し込みNoなど)を付けることができます。
  • 「通し番号」には任意の頭文字(例:問い合わせ番号なら「Q」など)を付けることができます。
  • 「通し番号」は任意の桁数に設定できます。
  • 特定の条件を設定しその条件を満たしたときだけ、「通し番号」を発行するように設定できます。
  • 件名にも「通し番号」を差し込みできます。これにより、返信をするとき簡単に「Re:お問い合わせ番号Q102105へのご返答です」などとすることができるので、毎回件名を記入する必要がありません 返信のメールをもらった送信者側もわかりやすくなります。
  • 件名にもフォームからの入力データを個別に差し込めます。
  • メールの文面内には通常の送信内容の他に、メールフォ-ムから入力されたデータを自由に差し込むことができるので、ありきたりの文面ではなく日常会話に近い自然な文章を作成して自動返信することができます もちろん、送信者宛・管理者宛に別々に作成することができます。
  • 連結された通常の送信内容をメール文面に全く挿入しないようにすることもできます。
  • チェックボックスなどの複数選択可能な項目の入力データをひとつにまとめるように設定できます。これによりCSVファイル内でフィールド(列)がずれてしまうことがありません。
  • チェックボックスやラジオボタン、セレクトメニューなどは何も選択されないとname値のデータがCGIに渡されずに、結果としてCSVファイル内のフィールド(列)がずれてしまいますが、同一name値のhiddenタイプ項目を設定することにより、それを防ぎます。
  • メールとCSVファイルに記載しない項目をいくつでも設定できます。
  • 送信されたデータをCSVファイルに保存します。
  • CSVファイルには送信されたデータの他、送信者の利用ホスト・利用ブラウザ・送信日時の情報が自動的に記録されます。
  • CSVファイルの記録ログを蓄積件数やデータ量を指定して自動ローテーションを行うのでサーバー容量の心配がありません。もちろんローテーションをしないようにも設定できます。
  • CSVファイルの破損を防ぐファイルロック機構。
  • 任意の条件に合致した場合のみ、任意の項目を通常のCSVファイルとは別のファイルに保存することが出来ます。これにより後から蓄積したデータを振り分けするといった業務処理を自動化します。
  • 半角カタカナが入力された場合でも自動的に全角カタカナに変換するので文字化けの心配がありません。
  • 長文の入力が予想されるメールフォ-ム項目(例:ご感想など)を、任意の文字数で自動改行するように設定できるので、メールが読みやすくなります。
  • メールの件名をBase64エンコードして文字化けを防ぎます。
  • メールフォーム画面・送信後画面・エラー画面・プレビュー画面のHTMLを自由に編集できます もちろん外部スタイルシートの取り込みもOK!。
  • メール送信後に任意のページへ任意の秒数で自動的にジャンプさせる・させないを設定できます。
  • 任意の時間内で、同一のメールアドレス・ホスト・ブラウザを利用している人からの二重送信を防ぎます。これにより二重注文等のトラブルを未然に防ぎます。
  • 指定したホストからのアクセスを拒否することができます。
  • 指定したサイト内からの入力でないとエラーとすることができます。
  • 送信者の利用ホスト・利用ブラウザ・送信時刻を、管理者と送信者それぞれのメール文面に差し込みする・しないを設定できます。
  • 注文数に応じて小計・消費税・合計金額を自動計算し、プレビュー画面及びメール文面に表示します。
  • 注文合計金額に応じて変化する代引き手数料などの金額を自動で算出し、小計金額に加算します。
  • 注文合計金額に応じて、消費税・送料・手数料などを自動でサービス(無料)とすることができます。
  • 注文合計金額に応じて、自動で割引サービスをすることができます。
  • 自動割引する価格帯・割引率は複数設定可能です。
  • 商品ID・商品名・ひとことコメントなど、プレビュー画面及びメール文面に記載する項目を任意にいくつでも設定できます。
  • プレビュー画面の計算結果HTMLを自由にカスタマイズできます。
  • CSVファイルには、各注文数量・小計金額・消費税・送料・手数料・合計金額も記載します。一部の商品が注文されなかったときや、送料・手数料が発生しなかったときでもCSVデータがずれることはありませんので、後々表計算ソフトでの集計業務に非常に重宝します。
  • 2004/4/1からの消費税総額表示に対応しました。

▲このページの上に戻る▲



Calc-Mail をゲット!


Calc-Mail は、必ずスクリプト利用規約に同意いただいた上で、設置・ご利用下さい。
Calc-Mail をダウンロードされた時点で無条件にスクリプト利用規約に同意したものとさせていただきますので、ご了承下さい。

スクリプト利用規約に同意していだけますか?
はい、スクリプト利用規約に同意します
(試用版は初回設置後14日間までご試用いただけます)

▲このページの上に戻る▲



Calc-Mail 設置法


CGIの設置が初めてという方はCGI初心者のためのCGI設置講座もご活用下さい。
このページの設置法を読んでみて、どうしてもご自分では設置できないという方は有償サービスのCGI設置代行をご検討下さい。

Calc-Mail をダウンロードしたら、解凍ソフトで解凍します。
ファイルを解凍すると「calc-mail」フォルダ内に以下のファイルが展開されます。

calc-mail.cgi
conf.cgi
jcode.pl
mimew.pl
dataフォルダ
lockフォルダ
mime_pls202フォルダ

lockフォルダの中にmail.lokというファイルが入っていますが、これはファイルロック用のファイルですのでこのままアップロードして下さい。
dataフォルダの中にもいくつかのファイルが入っていますがこれらも後ほどそのまま全てアップロードします。
jcode.pl歌代 和正さんのPerlライブラリで再配布が許可されています。歌代さんに心から感謝いたします!
mimew.pl生田 昇さんのPerlライブラリで再配布が許可されています。生田さんにも心から感謝いたします〜!
mime_pls202フォルダの中にはmimew.plのドキュメント一覧が含まれています。アップロードの必要はありません。

まずエディタcalc-mail.cgi を開き、1行目のPerlのパスをプロバイダ指定のものに変更します。
calc-mail.cgiconf.cgi は文字コードをEUCで記述していますのでWindows標準のメモ帳などでは編集できません)
calc-mail.cgi の変更点はこれだけで終りです。主な設定は設定用ファイルのconf.cgi で行います。
次にエディタでconf.cgi を開き、下記の設定を行います。
Calc-Mail は自由度が高い分、設定項目も多いのでちょっと大変かもしれませんが頑張ってみて下さい(^^;

#------------#
   基本設定
#------------#


# Calc-Mailのスクリプト名称(とくに変更する必要はありません)
$sc_name = 'calc-mail.cgi';


# ロックディレクトリ名(とくに変更する必要はありません)
$lock_dir = './lock/';


# ロックファイル名(とくに変更する必要はありません)
$lock_file = 'mail.lok';


# 設置サイトのトップページのURL(ここに記入したサイト以外からの不正投稿を禁止します)
$baseurl = 'http://あなたのホームページアドレス/';
※他サイトからの不正利用を防止したい場合に設定して下さい


# sendmail部分のパスを記入
$sendmail = '/usr/sbin/sendmail';
※プロバイダ指定のsendmail のパスを記入して下さい


# 設置サイトの名称(送信者に送られるメールの送信者名になります)
$admin_name = 'Web-UP';


# 送信を拒否するホスト名('ホスト名','ホスト名'…の形で)
# 記入例 @deny_host = ('waruihito.ne.jp','ikenaihito.ne.jp'); など
@deny_host = ('');


# 管理者にメール送信をするなら1、しないなら0
$send_admin = 1;


# 送信者にメール送信をするなら1、しないなら0
$send_costm = 1;


# 管理者のメールアドレスを記入します
# 複数ある場合は'aaa@bbb.cc; ddd@eee.ff'のように「;」で区切ります
$to = 'info@web-up.cside.biz';


# 管理者宛てメール送信時にCCで同時に送りたいアドレスがある場合に記入します
# 複数ある場合は'aaa@bbb.cc; ddd@eee.ff'のように「;」で区切ります
$cc = '';


# 管理者宛てメール送信時にBCCで同時に送りたいアドレスがある場合に記入します
# 複数ある場合は'aaa@bbb.cc; ddd@eee.ff'のように「;」で区切ります
$bcc = '';


# 送信前にプレビュー画面を表示するなら1、しないなら0
$preview = '1';




#------------------------#
     件名に関する設定
#------------------------#


# 送信者宛てメール件名
# 件名に ###番号### を含めると通し番号を挿入できます その場合下にある通し番号の設定も行って下さい
# ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます
$sub_costm = '';
記入例:$sub_costm = '###番号### ご予約有難う御座いました';


# 管理者宛てメール件名
# 件名に ###番号### を含めると通し番号を挿入できます その場合下にある通し番号の設定も行って下さい
# ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます
$sub_admin = '';
記入例:$sub_admin = '###番号### お申し込みありがとうございました';




#--------------------------#
    送信データに関する設定
#--------------------------#

# メール送信時に送信項目の行頭に付ける記号(CSVファイルの分割キーと同じものには出来ません)
# メール上で■項目名 などのようになります
$head ='■';


# メール送信時にname値とvalue値の間に入れる記号(CSVファイルの分割キーと同じものには出来ません)
# メール上で■項目名: などのようになります
$space =':';


# 送信者名として認識する項目('name値'の形で)
$namae = '';
記入例:$namae = 'お名前';


# 送信者名の後ろに付ける敬称
# メール上で■お名前: ○○ 様などのようになります
$keisyou = ' 様';


# 入力必須とする項目('name値','name値'…の形で)
@hisssu = ('','','');
記入例:@hisssu = ('お名前','メール','メール(再入力)');


# 送信者のメールアドレスとする項目(1項目のみ)
$mail_to = ('');
記入例:$mail_to = 'メール';


# メールアドレスとして書式チェックする項目('name値','name値'…の形で)
@mail_chek = ('','');
記入例:@mail_chek = ('メール','メール(再入力)');


# 同一の入力内容でないとエラーとする項目('name値'=>'name値'の形で 複数ある場合は ''=>'',''=>''…のように区切る)
%sames = (''=>'');
記入例:%sames = ('メール'=>'メール(再入力)');


# メールとCSVファイルに記載しない項目('name値','name値'…の形で)
@no_add = ('');
記入例:@no_add = ('メール(再入力)');


# プレビュー画面で表示しない項目('name値','name値'…の形で)
@no_pre = ('');
記入例:@no_pre = ('メール(再入力)');


# URLとして書式チェックする項目('name値','name値'…の形で)
@url_chek = ('');
記入例:@url_chek = ('ホームページアドレス');


# 半角数字のみ入力許可とする項目('name値','name値'…の形で)
@hankakusuuji = ('');
記入例:@hankakusuuji = ('郵便番号');


# 半角英数字のみ入力許可とする項目('name値','name値'…の形で)
@hankakueisuu = ('');
記入例:@hankakueisuu = ('ニックネーム');


# 郵便番号として書式チェックする項目('name値','name値'…の形で)
# xxx-xxxx(数字3桁 ハイフン 数字4桁)という書式でないとエラーとしたい場合に設定します
@zip = ('');
@zip = ('郵便番号');


# 入力データ量に制限を設ける項目('name値'=>'半角文字数'の形で 複数ある場合は ''=>'',''=>''…のように区切る)
%data_limits = (''=>'');
記入例:%data_limits = ('コメント'=>'400');


# メール送信時に自動的に改行する項目とその文字数
#(文字数は半角換算、70程度を推奨'name値'=>'半角文字数'の形で 複数ある場合は ''=>'',''=>''…のように区切る))
%auto_wrap = (''=>'');
記入例:%auto_wrap = ('ご感想'=>'70');


# 禁止ワードを設ける項目('name値'=>'禁止ワード:禁止ワード'の形で 複数ある場合は ''=>'',''=>''…のように区切る)
%bad_word = (''=>'');
記入例:%bad_word = ('メール'=>'furee_no_mail.com');


# 禁止ワード分割キー(上の %bad_word で設定した禁止ワードを分割する文字)
$bad_key = ':';


# 複数選択可能な項目で同じname値で入力データを1つにまとめたい項目('name値','name値'…の形で)
# 選択された項目をまとめてCSVファイルの列(フィールド)がずれないようにします
# !重要! この機能を使う場合は、送信者にデータを入力してもらうメールフォーム内において、@check_boxで設定した項目の
# <input type="checkbox" name="まとめたい項目" value="○○○"> の直下に、必ず同じname値のhiddenタイプ
# <input type="hidden" name="まとめたい項目" value=""> を記述して下さい hiddenタイプのvalue値は空白でけっこうです
# この一文によってなにも選択されなかった場合も未選択としてname値を保持します

# checkboxタイプ以外に、selectタイプでmultipleとして複数選択させる場合や
# radioタイプでなにも選択されなかった場合も未選択としてname値を保持したい場合も同様にして下さい
@check_box = ('','','');
記入例:@check_box = ('取りたい資格','連絡方法','所持資格','受験する資格');


# 上記の複数選択可能な項目のvalue値を連結するキー(CSVファイルの分割キーと同じものには出来ません)
$join_key = '';
記入例:$join_key = ' ・ ';
# 好きな食べ物: りんご ・ みかん ・ バナナ などのようになります


#-----------------------------------------#
      送信ボタン2度押し処理に関する設定
#-----------------------------------------#

# 送信ボタン2度押し検出用一時ファイル(とくに変更する必要はありません)
$temp_file = './data/temp.dat';


# 送信ボタン2度押しと判定しない秒数
# 同一送信者から複数回送信ボタンを押されたときにこの秒数以上経過していれば送信ボタン2度押しと判定しません
$wait = '10';


# 送信ボタンが2度押しされたときにエラー画面にするなら0、送信後画面にするなら1
# 送信ボタンが2度押しされても最初の1回目は通常に処理されますので送信後画面にしておいたほうが送信者の気分を害さなくてすむと思います
$dblsub_syori = '1';


# 送信ボタンが2度押しされたときのメッセージ
$dblsub_mes = '';
記入例:$dblsub_mes = '<br><div align=center style="color:red">(送信ボタンが2回押されたようですが、入力していただいた内容は既に送信されていますのでメールをご確認下さい)</div><br>';



#----------------------------#
     通し番号に関する設定
#----------------------------#


# 通し番号 設定するとメールとCSVファイルに記載されます(付ける=1 付けない=0)
$num_add = '1';


# 特定の条件が揃ったときだけ通し番号を発行する場合
# 例:name'問い合わせ内容'がvalue'申し込み'だったときだけ'申し込み番号'を発行するなど
# 'name値'=>'value値'の形で記述します 条件が複数ある場合は ''=>'',''=>''…のように区切る
# 無条件に通し番号を発行する場合は空白にして下さい
# @check_box = ('');で入力内容をまとめる項目は設定できません
%num_cond = (''=>'',''=>'');
記入例:%num_cond = (''=>'');


# 上の条件を複数設定したときにand条件とするなら1、or条件とするなら0
# and条件の場合は全ての条件を満たしたとき、or条件の場合はどれか一つでも条件を満たしたときに通し番号を発行します
$num_andor = '';


# 通し番号名称
$num_name = '';
記入例:$num_name = '注文番号';


# 通し番号桁数
$num_beams = '';
記入例:$num_beams = '5'; #(5桁)


# 通し番号の先頭に付ける文字
$num_head = '';
記入例:$num_head = 'ORD:';


# 通し番号格納ファイル(とくに変更する必要はありません)
$num_file = './data/no.dat';




#-------------------------------#
     CSVファイルに関する設定
#-------------------------------#


# 全送信項目格納CSVファイル
# セキュリティ上、データ漏洩が心配な場合は拡張子を .cgi とするかファイル名を変更して下さい
# ここでのファイル名を変更した場合は実際のファイル名も変更して下さい
# サーバー上に記録ログを残す必要が無い場合は 行頭に「#」を挿入し #$csv_file = './data/data.csv'; とすると
# CSVファイルに記録しなくなります
$csv_file = './data/data.csv';


# 指定項目格納CSVファイル
# 下の %spc_cond で指定した条件を満たしたときに @spec_val で指定した要素のみを抽出して記録します
# セキュリティ上、データ漏洩が心配な場合は拡張子を .cgi とするかファイル名を変更して下さい
# ここでのファイル名を変更した場合は実際のファイル名も変更して下さい
# サーバー上に記録ログを残す必要が無い場合は 行頭に「#」を挿入し #$spc_file = './data/spc.csv'; とすると
# CSVファイルに記録しなくなります
$spc_file = './data/spc.csv';


# 指定項目格納CSVファイルに記録する条件
# 'name値'=>'value値'の形で記述します 条件が複数ある場合は ''=>'',''=>''…のように区切る
# 無条件に指定項目格納CSVに記録する場合は空白にして下さい
%spc_cond = ('送信内容'=>'お問い合わせ');


# 上の条件を複数設定したときにand条件とするなら1、or条件とするなら0
# and条件の場合は全ての条件を満たしたとき、or条件の場合はどれか一つでも条件を満たしたときに通し番号を発行します
$spc_andor = 1;


# 指定項目格納CSVファイルに記録する項目('name値','name値'…の形で)
# ここで指定した項目の順番通りにCSVファイルに記録されますが、入力を必須にしないとデータがずれますのでご注意下さい
# ###送信日時###,###ホスト###,###ブラウザ###,###番号###とすると、該当する情報が記録されます
# 例) 送信日時・お名前・メールアドレスのみを記録するのであれば
# @spec_val = ('###送信日時###','お名前','メールアドレス'); となります
@spc_val = ('','','');


# CSVファイルの分割キー(タブ区切りにするときは半角で \t と記入します)
$split_key = ",";


# CSVファイルログのローテーション('Aタイプ'=>'B数量')
# Aタイプ (0か空白=ローテーションなし、1=件数指定、2=データ量指定)
# B数量 (件数指定なら送信件数、データ量指定ならキロバイト 1メガバイトなら1024キロバイト)
# 数量を件数で指定した際には送信される内容によりますが1万件でおよそ1〜2メガバイト程度のデータ量となります
@rtn = (0,0);




#--------------------------------#
     メールの文面に関する設定
#--------------------------------#


# 送信者に送信するメールの文面
# <<'EOF';の次の行からEOFの前の行の間で自由に編集して下さい
# ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます
# ##send_data##の部分にはフォームから入力された内容が差し込まれます
# ###送信日時###,###ホスト###,###ブラウザ###,###番号###とすると、該当する情報が差し込まれます

$send_mes_costm = <<'EOF';
##お名前## 様

この度はご注文を頂きまして誠にありがとうございます。
ご送信いただいた内容は下記の通りですのでご確認下さい。

###番号###
###送信日時###
##send_data##

ご注文の確認--------------------------------------

##calc_data##

--------------------------------------------------

おり返しご連絡いたしますのでしばらくお待ち下さい。
※万一このメールに覚えがない場合はお手数ですが
info@web-up.cside.biz までご連絡下さい。


/// [ Web-UP ] ////////////////////
Net-BP
Add:札幌市東区東苗穂1条2丁目6番
Tel/Fax: 011-784-0937
URL:http://web-up.cside.biz/
Mail:info@web-up.cside.biz
//////////////////////////////////

EOF




# 管理者に送信するメールの文面
# <<'EOF';の次の行からEOFの前の行の間で自由に編集して下さい
# ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます
# ##send_data##の部分にはフォームから入力された内容が差し込まれます
# ###送信日時###,###ホスト###,###ブラウザ###,###番号###とすると、該当する情報が差し込まれます

$send_mes_admin = <<'EOF';
##お名前## 様からご注文がありました。

###番号###
##send_data##

ご注文の確認--------------------------------------

##calc_data##

--------------------------------------------------

###送信日時###
###ホスト###
###ブラウザ###

EOF




#------------------------#
    HTMLに関する設定
#------------------------#


# HTMLの表示文字コード(PCのみの使用なら0でOKです)
# EUC-JP ⇒ 0
# Shift-JIS ⇒ 1(i-modeなど)
$html_code = 1;


# bodyタグ
$body = '<body bgcolor="#FFFFFF" text="#000000" link="#000FF" vlink="#800080">';


# 外部スタイルシートを取り込む場合、パスとファイル名(calc-mail.cgiからの相対パスかhttp://からの絶対パス)
$style = '';
記入例:$style = './style.css';


# 送信後画面のタイトル
$sendout_title = '送信完了しました';


# 送信後に表示するHTML
# <<EOF;の次の行からEOFの前の行の間で自由に編集して下さい
# <a href="$baseurl">トップページに戻る</a> はトップページに戻るためのリンクになります

$sendout_body = <<EOF;
<div align=center>
<font size=+1><b>ご注文いただきましてありがとうございました</b></font>
<br><br>
<HR width=50%>
<a href="$baseurl">トップページに戻る</a>
<HR width=50%>
</div><br><br>

EOF


# 送信後HTML表示後、自動的にジャンプさせるならその秒数(0にするとジャンプしません)
$jump_sec = '5';


# 送信後HTML表示後、自動的にジャンプさせるならそのURL(トップページなど)
$jump_url = 'http://あなたのホームページアドレス/';


# 送信後HTML表示後、自動的にジャンプさせるならそのメッセージ
# $jump_sec の部分には上で指定した秒数が表示されます
$jmes = "<div align=center><font color=blue>$jump_sec秒後にトップページへジャンプします</font></div><br>";


# エラー画面のタイトル
$error_title = 'エラー';


# エラー時に表示するHTML
# <<EOF;の次の行からEOFの前の行の間で自由に編集して下さい
# ##error## 部分にはエラー内容が差し込まれます
# <a href="$baseurl">トップページに戻る</a> はトップページに戻るためのリンクになります
# <a href=mailto:"$to">$to</a> は管理者にメールを送信するためのリンクになります

$error_body = <<EOF;
<br><br>
<div align=center>
<font size=+1 color=#cc0000><b>エラー</b></font>
<br><br>
<HR width=50%>
<font color=red>
##error##
</font>
<HR width=50%>
<br>
うまく送信できない場合は<a href="mailto:$to">$to</a>よりご連絡下さい
<br><br><br>
<A href="JavaScript:history.back()">前のページに戻る</A>
<br><br>
<a href="$baseurl">トップページに戻る</a>
</div>
<br><br>

EOF


# プレビュー画面のタイトル
$pre_title = 'ご注文の確認';


# プレビュー時に表示するHTML
# <<EOF;の次の行からEOFの前の行の間で自由に編集して下さい
# ##send_data##の部分にはフォームから入力された内容が差し込まれます
# プレビュー時にはフォームからの個別項目の差し込みはできません
# <form action =$sc_name method=POST> と <input type=hidden name=send_mes_go value=1> は位置変更・削除しないで下さい

$pre_body = <<EOF;
<div align=center>
<form action =$sc_namemethod=POST>
<input type=hidden name=send_mes_go value=1>
<table bgcolor=#DDDDCC cellpadding=1>
<tr><td align=center colspan=2>
以下の内容で送信してもよろしいですか?
</td></tr>
##send_data##
<tr><td align=center colspan=2>
<input type=submit value='送信'>&nbsp;&nbsp;
<input type=button value='戻る' onClick='history.back();'>
</td></tr></table>
</form>
</div>

EOF


# プレビュー画面のテーブル左側セル色
$left_col = '#FFFFEE';


# プレビュー画面のテーブル左側セルの左右揃え(left,center,right から選択、空白だとエラーになります)
$left_align = 'center';


# プレビュー画面のテーブル左側セルの上下揃え(top,middle,bottom から選択、空白だとエラーになります)
$left_valign = 'middle';


# プレビュー画面のテーブル右側セル色
$right_col = '#FFFFFF';


# プレビュー画面のテーブル右側セルの左右揃え(left,center,right から選択、空白だとエラーになります)
$right_align = 'left';


# プレビュー画面のテーブル右側セルの上下揃え(top,middle,bottom から選択、空白だとエラーになります)
$right_valign = 'middle';




#--------------------#
   計算に関する設定
#--------------------#



# 計算結果を表示するテーブルのHTML
# <<EOF;の次の行からEOFの前の行の間で自由に編集して下さい
# ##calc_data##の部分には内訳が差し込まれます
$cal_body = <<EOF;
<table bgcolor=#DDDDCC cellpadding=2>
<tr><td align=center colspan=6 bgcolor=#ededd0><b>お買い上げ合計</b></td></tr>
<tr bgcolor=#ffffee>
<td align=center>商品ID</td>
<td align=center>商品名</td>
<td align=center>単価</td>
<td align=center>数量</td>
<td align=center>金額</td>
</tr>
##calc_data##
</table>

EOF


# 単価セルのスタイル(スタイルシートで指定)
$uni_price_styl = 'background-color:#ffffff;text-align:right';


# 数量セルのスタイル(スタイルシートで指定)
$quantity_styl = 'background-color:#ffffff;text-align:center';


# 小計セルのスタイル(スタイルシートで指定)
$subtotal_styl = 'background-color:#ffffff;text-align:right';


# 計算の対象とする項目のうち、アイテム名の通称
$item_name = '商品';


# 小計金額行のスタイル(スタイルシートで指定)
$sub_styl = 'background-color:#ffffee;font-weight:bold';


# 総合計金額行のスタイル(スタイルシートで指定)
$sum_styl = 'background-color:#ffffee;font-weight:bold';


# 計算の対象とする項目の内容('商品ID:商品名:コメント:単価'のように「:」で区切る)
# 単価が一番右になるようにしてください
# メールにこの名称で記載されます
$calc_val = '商品ID:商品名:単価';


# 計算の対象とする項目の内容のスタイル(スタイルシートで指定)
# $calc_val の左から順に、単価を除く
@calc_styl = (
'background-color:#ffffff;text-align:center',
'background-color:#ffffff',
);



# 計算の対象とする項目('内容:内容:単価'のように「:」で区切る)
# 上で設定した $calc_val と対応している必要があります
# 単価が必ず一番右になるようにしてください
# 単価には桁区切りのための「,」を含めないで下さい
# 実際のフォームのname値もここで記述したものと同一の内容にします
@calc = (
'A-1:みかん3kgセット:2000',
'A-2:りんご5kg詰め合わせ:4800',
'A-3:新巻鮭:6800'
);



# $calc_valのうち、メールに記載する項目の位置(左から何番目か)
# 単価・数量・小計金額は自動的に記載されます
@mail_pos = (1,2);


# 合計金額(送料・消費税・その他の手数料加算前の金額)が一定額以上なら合計金額自体を割引とする場合、その金額と割引率
# 合計金額が1万円以上のときに合計金額を5%オフとするなら %less_step = (10000=>5); のようになります
# 「,」で区切ることにより複数設定できます
# とくに割引をしない場合は %less_step = (0=>0); として下さい
# 金額には桁区切りのための「,」を含めないで下さい
%less_step = (20000=>5,30000=>10);


# 上の %less_step で合計金額(送料・消費税・その他の手数料加算前の金額)の割引を実施したとき、
# 以下の消費税・送料・手数料等を無料とする基準を割引前の金額とするなら0、割引後の金額とするなら1
$less_cond = 1;


# 消費税の名称
$tax_name = '消費税';


# 消費税率
$ratio = 5;


# 消費税計算方法 1円未満を切上げなら0、切捨てなら1、四捨五入なら2
$tax_cal = 0;


# 合計金額(送料・消費税・その他の手数料加算前の金額)が一定額以上なら消費税を無料とする場合、その金額
# 金額には桁区切りのための「,」を含めないで下さい
# 金額に関わらず消費税を無料としない場合は $tax_free = 0; として下さい。
$tax_free = 5000;


# 送料とする項目名('name値'の形で)
# これを
# 送料を計算に含めない場合は $trans_cost = ''; と空白にして別途説明するなどしてください
$trans_name = '送料';


# 送料にも消費税を加算するなら1、しないなら0
$trans_tax = 1;


# 合計金額(送料・消費税・その他の手数料加算前の金額)が一定額以上なら送料を無料とする場合、その金額
# 金額には桁区切りのための「,」を含めないで下さい
# 金額に関わらず送料を無料としない場合は $trans_free = 0; として下さい。
$trans_free = 10000;


# その他の手数料(代引き手数料など)も計算に含める場合、その項目名('name値'の形で)
# その他の手数料を計算に含めない場合は $comsn_cost = ''; と空白にして別途説明するなどしてください
# 利用者に選択させる場合は <input type=checkbox name="代引き手数料" value=1> などとして下さい
# ここで設定した手数料が必ず発生する場合は <input type=hidden name="代引き手数料" value=1> などとして下さい
$comsn_name = '代引き手数料';


# その他の手数料にも消費税を加算するなら1、しないなら0
$comsn_tax = 1;


# 合計金額(送料・消費税・その他の手数料加算前の金額)が一定額以上ならその他の手数料を無料とする場合、その金額
# 金額には桁区切りのための「,」を含めないで下さい
# 金額に関わらずその他の手数料を無料としない場合は $comsn_free = 0; として下さい。
$comsn_free = 15000;


# 合計金額(送料・消費税・その他の手数料加算前の金額)によって、その他の手数料金額が変動する場合、価格帯と手数料額
# 合計金額が1万円以下のときにその他の手数料を300円、一万円超のときにその他の手数料を600円とするなら
# %trans_less = (10000=>300,0=>600); のようになります
# その他の手数料を一律300円とするなら %trans_less = (0=>300); のようになります
# 金額には桁区切りのための「,」を含めないで下さい
%comsn_step = (10000=>300,30000=>400,100000=>600,0=>1000);


# 送料・消費税・その他の手数料加算前の金額の名称
$sub_total_name = '小計';


# 総合計金額の金額の名称
$sum_total_name = 'ご請求合計金額';


# 送料・消費税・その他の手数料をサービスしたときのコメント
$sv_comnt = 'サービス';


いや〜 お疲れ様でした(笑) あとはファイルをアップロードしてパーミッションを設定するだけです。
アップロードする前に一服でもしましょう Oo。.(^。^)y-〜



一服が終わったら全ファイルを Calc-Mail ディレクトリごと、FTPソフトでアスキーモードでアップロードします。
その後、下の通りパーミッションを設定します。
FTPソフトは定番のSotaさん作FFFTP(新しいウィンドウが開きます)が使いやすくてオススメです。

<ディレクトリ構成例>
(かっこ内はパーミッション値)

/public_html/-─┼----index.html
                │
                │
                ┼--/cgi-bin[755]/--/calc-mail[755]/---calc-mail.cgi[755]
                                                            conf.cgi[644]
                                                            jcode.pl[644]
                                                            mimew.pl[644]

                                                               /data[777]/---data.csv[666]
                                                                              spc.csv[666]
                                                                               no.dat[666]
                                                                             temp.dat[666]
                                                                      index.html[変更なし]
                                                                       .htaccess[変更なし]

                                                               /lock[777]/---mail.lok[666]

最初は上記のパーミッションに設定して、徐々に各ファイルを

777⇒707
755⇒705
666⇒606
644⇒604


などのようにきつくしていくといいと思います。
あとは、任意に設置したメールフォームに

<form action=設置パス/calc-mail.cgi>

と記述すればOKです。
スクリプト動作の都合上、フォームのname値で[send_mes_go]だけは使えませんが、あとはどんな名前のものを使っていただいてもかまいません。


▲このページの上に戻る▲



「Calc-Mail」の推奨動作環境
- サーバOS
サーバOSはUNIXを前提としています。
- サーバWEBソフト (HTTPD)
HTTPDはApacheを前提としています。
- サーバメールソフト
メールソフトはSendmailを前提としています。
- サーバPerlソフト
Perlについては、Perl5を前提としています。
(CGIスクリプト開発環境)
当CGIスクリプトは以下の環境で開発しています。
OS : Windows2000
Perl : ActivePerl v5.6.1
HTTPD : Apache HTTP Server 1.3.24





▲このページの上に戻る▲

ホーム > CGI配布コーナー > Calc-Mailお問い合わせ
[an error occurred while processing this directive]