|
| |
|
・Hi-Mail とは? ・Hi-Mail の特徴 ・Hi-Mail 設置法 ・Hi-Mail の便利な活用法
Hi-Mail は専任のメール担当者を確保できないSOHOや中小企業のメール応対業務を独自の条件別処理により高度に自動化し、通し番号自動発行機能やCSVデータズレ防止機能、CSVファイル自動ローテーション機能などにより、メールフォームCGIの枠を超えたメール応対業務最適化システムです。 memory.cgi(外部オプションファイル)を活用することにより、次回注文時に再び名前やメールアドレスを入力していただくといった手間を省くことが出来るので送信処理が一発で完了します! 他にも、お知り合いにご紹介していただく機能なども後から自由に追加することが出来ます! (サンプル画面:新しいウィンドウが開きます) Hi-Mail はシェアウェア(3,150円)のCGIメールフォームスクリプトです。 (Perl:バージョン5.004以上、Sendmail必須) CGIの設置が苦手という方には、メルマガ:なるほど、これならわかる!超初心者の為のCGI設置講座がお勧めです! ※現在、BBSでの設置サポートは休止中です。 [ 更新履歴 ]
Hi-mail は特徴がありすぎて全部書くとスゴイ量になると思いますが、やっぱり書いておきます(^^;
▲このページの上に戻る▲
Hi-Mail は、必ずスクリプト利用規約に同意いただいた上で、設置・ご利用下さい。 Hi-Mail をダウンロードされた時点で無条件にスクリプト利用規約に同意したものとさせていただきますので、ご了承下さい。 (試用版は初回設置後14日間までご試用いただけます) ▲このページの上に戻る▲
CGIの設置が初めてという方はCGI初心者のためのCGI設置講座もご活用下さい。 このページの設置法を読んでみて、どうしてもご自分では設置できないという方は有償サービスのCGI設置代行をご検討下さい。 Hi-Mail をダウンロードしたら、解凍ソフトで解凍します。 ファイルを解凍すると「hi-mail」フォルダ内に以下のファイルが展開されます。
lockフォルダの中にmail.lokというファイルが入っていますが、これはファイルロック用のファイルですのでこのままアップロードして下さい。 dataフォルダの中にもいくつかのファイルが入っていますがこれらも後ほどそのまま全てアップロードします。 jcode.pl は歌代 和正さんのPerlライブラリで再配布が許可されています。歌代さんに心から感謝いたします! mimew.pl は生田 昇さんのPerlライブラリで再配布が許可されています。生田さんにも心から感謝いたします〜! ※mime_pls202フォルダの中にはmimew.plのドキュメント一覧が含まれています。アップロードの必要はありません。 まずエディタでhi-mail.cgi を開き、1行目のPerlのパスをプロバイダ指定のものに変更します。 (hi-mail.cgi とconf.cgi は文字コードをEUCで記述していますのでWindows標準のメモ帳などでは編集できません) hi-mail.cgi の変更点はこれだけで終りです。主な設定は設定用ファイルのconf.cgi で行います。 次にエディタでconf.cgi を開き、下記の設定を行います。 Hi-Mail は自由度が高い分、設定項目も多いのでちょっと大変かもしれませんが頑張ってみて下さい(^^; | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#------------# 基本設定 #------------# # Hi-Mailのスクリプト名称(とくに変更する必要はありません) $sc_name = 'hi-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'; #------------------------# 件名に関する設定 #------------------------# # 送信者宛てメール件名(1) # 件名に ###番号### を含めると通し番号を挿入できます その場合下にある通し番号の設定も行って下さい # ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます $sub_costm1 = ''; 記入例:$sub_costm1 = '###番号### ご予約有難う御座いました'; # 送信者宛てメール件名(2) # 特定の条件が揃ったときの送信者宛てのメール件名 # 件名に ###番号### を含めると通し番号を挿入できます その場合下にある通し番号の設定も行って下さい # ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます # 下の@sub_costm_condを指定しないと無効となります $sub_costm2 = ''; 記入例:$sub_costm2 = 'お問い合わせありがとうございました'; # 送信者宛てメール件名を変更する条件 # ('name値','value値') の形で記述します 1つの条件まで指定できます # この設定をした場合、このファイルの下の方にある送信者宛のメール文面 $send_mes_costm2 も設定できます @sub_costm_cond = ('',''); 記入例:@sub_costm_cond = ('ご用件','お問い合わせ'); # 管理者宛てメール件名(1) # 件名に ###番号### を含めると通し番号を挿入できます その場合下にある通し番号の設定も行って下さい # ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます $sub_admin1 = ''; 記入例:$sub_admin1 = '###番号### お申し込みありがとうございました'; # 管理者宛てメール件名(2) # 特定の条件が揃ったときの管理者宛てのメール件名 # 件名に ###番号### を含めると通し番号を挿入できます その場合下にある通し番号の設定も行って下さい # ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます # 下の@sub_admin_condを指定しないと無効となります $sub_admin2 = ''; # 管理者宛てメール件名を変更する条件 # ('name値','value値') の形で記述します 1つの条件まで指定できます # この設定をした場合、このファイルの下の方にある管理者宛のメール文面 $send_mes_admin2 も設定できます @sub_admin_cond = ('',''); #--------------------------# 送信データに関する設定 #--------------------------# # メール送信時に送信項目の行頭に付ける記号(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 = 'Q'; 記入例:$num_head = 'Q'; # 通し番号格納ファイル(とくに変更する必要はありません) $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); #--------------------------------# メールの文面に関する設定 #--------------------------------# # 送信者に送信するメールの文面(1) # <<'EOF';の次の行からEOFの前の行の間で自由に編集して下さい # ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます # ##send_data##の部分にはフォームから入力された内容が差し込まれます # ###送信日時###,###ホスト###,###ブラウザ###,###番号###とすると、該当する情報が差し込まれます $send_mes_costm1 = <<'EOF'; ##お名前## 様 この度はお問い合わせを頂きまして誠にありがとうございます。 ご送信いただいた内容は下記の通りですのでご確認下さい。 ###送信日時### ##send_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 # 送信者に送信するメールの文面(2) # 特定の条件が揃ったときだけ送信者宛てのメールの文面を変更する場合 # この設定をした場合、このファイルの上の方にある @sub_costm_cond も設定する必要があります # <<'EOF';の次の行からEOFの前の行の間で自由に編集して下さい # ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます # ##send_data##の部分にはフォームから入力された内容が差し込まれます # ###送信日時###,###ホスト###,###ブラウザ###,###番号###とすると、該当する情報が差し込まれます $send_mes_costm2 = <<'EOF'; ##お名前## クン! ひやかしならやめてっ! (≧ヘ≦ )プイッ EOF # 管理者に送信するメールの文面(1) # <<'EOF';の次の行からEOFの前の行の間で自由に編集して下さい # ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます # ##send_data##の部分にはフォームから入力された内容が差し込まれます # ###送信日時###,###ホスト###,###ブラウザ###,###番号###とすると、該当する情報が差し込まれます $send_mes_admin1 = <<'EOF'; ##お名前## 様からお問い合わせがありました。 ##send_data## ###送信日時### ###ホスト### ###ブラウザ### EOF # 管理者に送信するメールの文面(2) # 特定の条件が揃ったときだけ送信者宛てのメールの文面を変更する場合 # この設定をした場合、このファイルの上の方にある @sub_admin_cond も設定する必要があります # <<'EOF';の次の行からEOFの前の行の間で自由に編集して下さい # ##フォームのname値##とするとフォームから入力された内容を個別に差し込みます # ##send_data##の部分にはフォームから入力された内容が差し込まれます # ###送信日時###,###ホスト###,###ブラウザ###,###番号###とすると、該当する情報が差し込まれます $send_mes_admin2 = <<'EOF'; ##お名前## 様からひやかしがありました。 ##send_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">'; # 外部スタイルシートを取り込む場合、パスとファイル名(hi-mail.cgiからの相対パスかhttp://からの絶対パス) $style = ''; 記入例:$style = './style.css'; # 送信後画面のタイトル $sendout_title = '送信完了しました'; # 送信後に表示するHTML # <<EOF;の次の行からEOFの前の行の間で自由に編集して下さい # <a href="$baseurl">トップページに戻る</a> はトップページに戻るためのリンクになります $sendout_body = <<EOF; <div align=center> (^o^)丿 <font size=+1><b>お問い合わせいただきましてありがとうございました</b></font> (^o^)丿 <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 の部分には上の $jump_url で指定した秒数が表示されます $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; <div align=center> <font color=#cc0000>(゚∇゚|||) <font size=+1><b>エラー</b></font> (゚∇゚|||)</font> <br><br> <HR width=50%> <font color=red> ##error## </font> <HR width=50%> <br> うまく送信できない場合は<a href=mailto:"$to">$to</a>よりご連絡下さい <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='送信'> <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'; いや〜 お疲れ様でした(笑) あとはファイルをアップロードしてパーミッションを設定するだけです。 とりあえず一服して少し休んでくださいね(^^; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一服が終わったら全ファイルを hi-mail ディレクトリごと、FTPソフトでアスキーモードでアップロードします。 その後、下の通りパーミッションを設定します。 FTPソフトは定番のSotaさん作FFFTP(新しいウィンドウが開きます)が使いやすくてオススメです。 <ディレクトリ構成例> (かっこ内はパーミッション値)
最初は上記のパーミッションに設定して、徐々に各ファイルを 777⇒707 755⇒705 666⇒606 644⇒604 などのようにきつくしていくといいと思います。 あとは、任意に設置したメールフォームに <form action=設置パス/hi-mail.cgi> と記述すればOKです。 スクリプト動作の都合上、フォームのname値で[send_mes_go]だけは使えませんが、あとはどんな名前のものを使っていただいてもかまいません。 ▲このページの上に戻る▲
Hi-Mail は特定の条件が一致したときだけに通し番号を自動発行したり、同様に特定の条件が一致したときだけメールの文面と件名を変えることができること、フォームから入力された内容を自由に差し込みできることなどを利用して非常に便利な使い方ができます。
ケース1:特定の条件が揃ったときに自動で通し番号を発行する場合 例えば、 <input type=radio name="ご用件" value="お申し込み"> <input type=radio name="ご用件" value="その他"> こんな選択肢のラジオボタンの項目があったときに、「ご用件」が「お申し込み」だったときに”お申し込み番号”などを自動で発行できればとても便利ですよね。 逆に「ご用件」が「その他」だったときには”お申し込み番号”は発行したくありません。 そんな設定もHi-Mail ならカンタンにできちゃいます! conf.cgi の%num_cond = (''=>'',''=>'');に、'name値'=>'value値'の形で %num_cond = ('ご用件'=>'お申し込み'); と記述すれば、「ご用件」の項目で「お申し込み」が選択されていたときだけ、”お申し込み番号”を自動発行させることができます。 %num_cond = (''=>'',''=>'');には複数の条件をいくつでも設定できますので、複雑な条件を指定したいときにも対応できます。 複数の条件を指定したときに、全ての条件を満たしたときのみ通し番号を発行するのか、条件のうちどれか一つでも満たせば通し番号を発行するのかもカンタンに設定できます。 conf.cgi の$num_andor = '';に $num_andor = '1'; とすれば、全ての条件を満たしたときのみ通し番号を発行し、 $num_andor = ''; または $num_andor = '0'; とすれば、設定した条件のうちどれか一つでも満たせば通し番号を発行するようにできます。 通し番号自体の名称も自由に変更できます。 conf.cgi の$num_name = '';に $num_name = 'お問い合わせ番号'; とすれば「お問い合わせ番号」、 $num_name = '予約No'; とすれば「予約No」となります。 通し番号の桁数を変更する場合は conf.cgi の$num_beams = '';で任意の数字を設定します。 通し番号の先頭になんらかの文字を付けたい場合は conf.cgi の$num_head = '';に任意の文字を設定します。 $num_head = 'Q'; とすれば「お問い合わせ番号:Q00212」などとなります。 ▲活用法メニューへ▲ ケース2:特定の条件が揃ったときにメールの件名・本文を変更したい場合 ケース1と似ていますが、メールフォームからの入力内容によって自動返信する内容を変えたいというシチュエーションはけっこうあると思います。 そんなときもHi-Mail にオマカセっ! サンプルフォームで実際に設定していますが、 conf.cgi の@sub_costm_cond と @sub_admin_cond に'name値'=>'value値'の形で条件を設定します。 @sub_costm_cond には送信者宛の件名とメール文面を変更する条件、 @sub_admin_cond には管理者宛の件名とメール文面を変更する条件を設定します。 それぞれ、条件は一つまでとなります。 この設定をする場合は conf.cgi の $sub_costm2 (送信者宛件名2) $send_mes_costm2 (送信者宛文面2) $sub_admin2 (管理者宛件名2) $send_mes_admin2 (管理者宛文面2) これらの項目も設定します。 例えば@sub_costm_cond に @sub_costm_cond = ('送信内容'=>'ひやかし'); とすれば「送信内容」が「ひやかし」だったときに conf.cgi の $sub_costm2 と $send_mes_costm2 に設定した件名と文面が送信者に送られます。 また、件名には通し番号を差し込むことができます。例えば送信者宛てメール件名(1)の $sub_costm1 に $sub_costm1 = '###番号### ご予約頂きましてありがとうございます'; などとすれば、###番号### の部分と通し番号が入れ替わり、 「ご予約番号:T203156 ご予約頂きましてありがとうございます」 といった件名にすることも可能ですので、同一の送信者から複数回のメール送信があっても件名だけでメールを一意に識別することができます。 ▲活用法メニューへ▲ ケース3:送信者から管理者に送られてくるメールの送信者名を設定する場合 通常のメールフォームだと、送信者から管理者に送られてくるメールの「送信者名」が管理者の名前になっていたり、件名も送信者に送るものと同じものになってしまうことが多いようです。しかしこれだと、送信者に返信をするときにいちいちメールアドレスと件名を記入しないといけなく、面倒なことこの上ありません。 Hi-Mail ならこんな問題も朝飯前です(^^ conf.cgi の$namae = ''; に $namae = 'お名前'; など、 $keisyou = ' '; に $keisyou = ' 様'; など、 $mail_to = ''; に $mail_to = 'メール'; などとしておけば、 送信者からメールが届いたときの送信者名は「送信者名 様」となり、送信者に返信をするときも自動的に「送信者名 様」 <送信者のメールアドレス>となるので、と〜っても楽チンです! ▲活用法メニューへ▲ ケース4:送信者が入力するメールアドレスの間違いを防ぎたい場合 商用のWEBサイトにおいて、送信者がメールフォームに入力したメールアドレスが間違っていたために連絡が取れなくなり、商品が届かないなどのクレームとなってしまうことは、実はよくあります。 やっぱりHi-Mail ならこんな問題も朝飯前の昼飯抜き(死語)です(^-^;; conf.cgi の @mail_chek = ('',''); に、 @mail_chek = ('メール','メール(再入力)'); などとしておけば、@mail_chek に設定された項目の入力内容を、正規表現というものを使って正確に書式チェックしますので、メールアドレスの入力ミスが激減します。 また、%sames = ('',''); に、 %sames = ('メール'=>'メール(再入力)'); などとしておけば、%sames に設定された項目の入力内容が一致しなかった場合はエラーとなりますので、さらに確実性を高めることができます。 @mail_chekと同様に @url_chek = (''); に、 @url_chek = ('URL'); などとしておけば、@url_chek に設定された項目の入力内容を、@mail_chek同様、正規表現というものを使って正確に書式チェックしますので、ホームページアドレスの入力ミスが激減します。 ▲活用法メニューへ▲ ケース5:複数選択可能な項目(チェックボックスなど)の項目を一つにまとめたい場合 チェックボックスやリストボックスなどの複数選択可能なフォームの項目では、2つ以上の項目が選択された場合や何も選択されなかった場合に項目数が増えたり減ったりしてしまいます。例えば次のようなメールフォームがあるとします。 <input type="checkbox" name="趣味" value="囲碁"> <input type="checkbox" name="趣味" value="釣り"> <input type="checkbox" name="趣味" value="野球"> このメールフォームで「囲碁」と「野球」が選択されたときだと、メールや送信情報を記録するCSVファイルでは 趣味:囲碁 趣味:野球 などと2行になってしまいます。 逆にもし何も選択されなかったときには (空白) となり、CSVデータのフィールド(列)位置がずれてしまいます。一見するとたいした問題ではないようにも感じますが、メールフォームから得られた情報を後で集計したいときやDM配信をしたいときなど、いちいち手動でデータをずらすという気の遠くなる作業が待っています。これでは効率がよいとは言えませんね(^-^;; でもHi-Mail なら、こんな問題も楽勝! まず入力内容をまとめたいチェックボックスやリストボックスなどの項目名を conf.cgi の @check_box = ('',''); に @check_box = ('趣味'); などとします。いくつでも設定できます。 そして、実際のメールフォームの <input type="checkbox" name="趣味" value="囲碁"> <input type="checkbox" name="趣味" value="釣り"> <input type="checkbox" name="趣味" value="野球"> のすぐ下に @check_box に設定した項目名と同じ項目名の hiddenタイプ の一文 <input type="hidden" name="趣味" value=""> を追加します。 value は空のままでけっこうです。実際には <input type="checkbox" name="趣味" value="囲碁"> <input type="checkbox" name="趣味" value="釣り"> <input type="checkbox" name="趣味" value="野球"> <input type="hidden" name="趣味" value=""> こんな感じになります。これだけで、@check_box に設定した項目に入力されたデータが複数であろうと未入力であろうと必ず一つにまとめて、項目名が消えてしまうということもありません。これでCSVファイル上でも完全にデータのフィールド(列)位置をキープします。 ▲活用法メニューへ▲ ケース6:メールフォームから入力されるデータ量に制限を設けて、メールが読みやすいように指定文字数で改行したい場合 WEBサイト運営を長くやっていると、ときどき悪意ある第三者から膨大な量の長文を送信されたりすることがあります。そうするとメールボックスがパンクしたり不必要なメールの受信をすることとなり業務に障害が出てしまいます。また、一般の送信者からでも長文のご意見をいただくことがありますが、そのような内容をメールソフトで開くと横に長く広がってしまい大変読みにくいものです。 でもHi-Mail なら楽々です! conf.cgi の %data_limits = (''=>''); に、'name値'=>'半角文字数'の形で %data_limits = ('ご意見'=>'1000'); などとしておけば、「ご意見」の項目には半角1000文字を超えて入力することができなくなります。 また、%auto_wrap = (''=>''); に、'name値'=>'半角文字数'の形で %auto_wrap = ('ご意見'=>'70'); などとしておけば、「ご意見」の項目に入力された文字列は自動的に半角70文字で改行されてメール送信されるので、送信者も管理者もメールが読みやすくなります。 万一、悪意ある送信者から嫌がらせ等のメールが送られてきたら、その送信者のホスト名を @deny_host = (''); に登録してしまえば、その送信者は今後Hi-mail から送信することができなくなります。 ▲活用法メニューへ▲ ケース7:メールの文面にフォームからの入力値を差し込んで自然な文章を作りたい場合 普通のメールフォームの自動返信メールは、ただ入力項目が並んで記載されているだけで、今ひとつ味気ないものですが、Hi-Mail なら送信者がメールフォームから入力した内容をメール文面内に自由に差し込んで自然な文章を作成して自動返信することができます。 conf.cgi の $send_mes_costm1 など、メールの文面を定義している部分の中に、 ##name値## とすることによって、該当するname値の入力内容を差し込むことができます。 「#」の数がname値の前後に2つづつであることに注意して下さい。 この機能を使う場合は該当するname値を入力必須にしておくことを忘れないようにして下さい(^^; 同様に、 ###送信日時### ###ホスト### ###ブラウザ### ###番号### とすることにより、送信された日時、送信者の利用ホスト、送信者の利用ブラウザ、通し番号を任意の位置に差し込むことができます。 「#」の数が項目名の前後に3つづつであることに注意して下さい。 メール文面内の ##send_data## の位置にはメールフォームから入力されたデータを連結したものが差し込まれますが、この部分を削除してしまえば自動返信とは思えない自然な文章を作成することもできます。 例えば、下記のようなメール文面を作ってもいいかもしれません。 (思いっきり ##send_data## を残してますが(^^; ) $send_mes_costm1 = <<'EOF'; ##お名前##さん、この度はWeb-UPに##依頼内容##を依頼してくれてどうもね〜♪ ところで、##お名前##さん、##依頼内容##は##スクリプト名##でいいのかな? 一応、##お名前##さんが送信してくれた内容を下に書いておくから確認してみてねっ! ###送信日時### ##send_data## そんじゃ、担当の##担当者##がお返事するからまっててね! ばいぴょーん! /// [ 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 ・・・まぁ、このへんはご自由にどうぞ(^-^;; ちなみに上の例だと、実際のフォーム上では##担当者##に該当する部分を <input type=hidden name="担当者" value="田久保"> のように、hiddenタイプとして送信者からは見えないようにしてあります。 ▲活用法メニューへ▲ 余談:メールフォームから日本語入力をコントロールする わりと有名な話だとは思いますが、インターネットエクスプローラーに限り、<input type=text ・・・>などの文字を入力するフィールドで、スタイルシートを使って「IME」の日本語入力をコントロールすることができます。例えば
こんな感じでHTMLだけで日本語入力のオン・オフ・無効をコントロールすることができます。 activeとinactiveは送信者がそのフィールド上で任意に日本語入力のオン・オフを切り替えることができますが、disabledの場合はIMEが完全に無効となり日本語入力をオンにすることができなくなりますので、メールアドレスなど日本語を入力して欲しくない部分に style="ime-mode:disabled" を設定しておくとよいでしょう。ちなみにネットスケープではime-modeプロパティは無効となりなんの効果もありません。 サンプルフォームにも適用してありますので試してみて下さい。 ▲活用法メニューへ▲ ▲このページの上に戻る▲
実際にHi-Mail を使ってみた方が「こりゃ便利!」と言ってくれた使い方をつらつらと並べてみましたが、Hi-Mail が役立つシチュエーションは他にもたくさんあると思います。あなたなりの使い方を見つけて便利に役立てて下さいね〜!(^^ ▲このページの上に戻る▲ 「Hi-Mail」の推奨動作環境
▲このページの上に戻る▲ |
|
| |