「POSTMAN3」について
概要
「POSTMAN3」は、HTML フォームの内容を指定されたメールアドレスに送信する CGI スクリプトです。
同梱ファイルについて
- clipboard
- 添付ファイルの一時保存フォルダです。
- data
- 下記ファイルおよびフォルダが格納されています。
- _htaccess ファイル
- アクセスを禁止するための設定が書かれています。postman.cgi を使用する前に「.htaccess」にリネームします。
- msg
- 自動返信メールのメッセージを記述したテキストファイルを保存します。
- number
- 最新の登録番号(シリアルナンバー)を記述したテキストファイルを保存します。
- lib
- postman.cgi が利用するモジュールが格納されています。postman.cgi を使用する前に、このフォルダにある「_htaccess」ファイルを「.htaccess」にリネームします。
- postman.cgi
- HTML ファイルから送られてきたフォームの内容を指定されたメールアドレスに送信する CGI スクリプトです。
- postman.css
- postman.cgi が付加する class 名に対応したスタイルが書かれています。必要がなければ HTML ファイルから呼び出す必要はありません。
- postman.js
- その場で書式をチェックしたり、二重送信を防止する JavaScript が書かれています。必要がなければ HTML ファイルから呼び出す必要はありません。
- ReadMe.html
- このファイルです。サーバにアップロードしないでください。
- sample
- HTML ファイルのサンプルです。サーバにアップロードしないでください。
- contact.html
- 問い合わせフォームのサンプルです。
- page1.html
- ページ分割した問い合わせフォームの1ページめのサンプルです。
- page2.html
- ページ分割した問い合わせフォームの2ページめのサンプルです。
- style.css
- サンプル HTML が参照するスタイルシートです。
- thanks1.html
- 送信お礼ページのサンプルです。
- thanks2.html
- 送信お礼ページのサンプルです。
設置方法
- 下記ファイルおよびフォルダを postman.cgi との相対位置が変わらないようにアップロードします。
- clipboard
- data
- lib
- postman.cgi
- postman.css
- postman.js
- 下記「_htaccess」ファイルを「.htaccess」にリネームします。
- data/_htaccess → data/.htaccess
- lib/_htaccess → lib/.htaccess
- サーバの環境に合わせパーミッションを適切に設定します。postman.cgi は 0705 など、CGI として動作可能なパーミッションに設定してください。
postman.cgi 設定
- my $sendmail = '/usr/sbin/sendmail';
- sendmailのパス または SMTPサーバのIPアドレス を設定します。
- my $cgi_master = 'master@yourserver.jp';
- 管理者メールアドレスを設定します。
- my $send_ok = 0;
- 宛先指定ヘッダを許可するかどうか設定します。許可する場合は 1 とします。宛先指定ヘッダを許可すると、HTML で宛先を指定できます。宛先指定ヘッダを許可すると、迷惑メール送信のために悪用される恐れがありますのでご注意下さい。
- my $mail_to = 'master@yourserver.jp';
- メール送信先を設定します。このアドレスには必ず送信されます。複数の場合はカンマで区切ります。
- my $mail_cc = 'admin@yourserver.jp,admin2@yourserver.jp';
- Cc メール送信先を設定します。このアドレスには必ず送信されます。複数の場合はカンマで区切ります。
- my $mail_bcc = 'user1@yourserver.jp,user2@yourserver.jp';
- Bcc メール送信先を設定します。このアドレスには必ず送信されます。複数の場合はカンマで区切ります。
- my $ref_check = 1;
- 直前URLを制限する場合、1とします。直前URLを制限しない場合は、0 とします。
- my $ref_uri = 'http://yoursite.jp/';
- 直前URLが設定された URL にマッチしない場合 $jump_to にジャンプします
- my $jump_to = 'http://yoursite.jp/entrance.html';
- 直前URLが不正であったときの移動先を設定します。
- my @allowed_file_types = ('jpg','jpeg','gif','png','txt','csv','zip');
- 受け付けるファイルの拡張子を設定します。
- my $sizelimit = 128000;
- 添付ファイルのファイルサイズ上限値(単位=バイト/1KB=1000)を背て治します。
- my $sv = 'csv_';
- 送信されたデータを添付ファイルに変換する場合設定します。
- csv
- 送信をCSV形式の添付ファイルに変換する。
- tsv
- 送信をタブ区切りテキストの添付ファイルに変換する。
- csv_ または tsv_
- メッセージにもデータを含める。
- sjis | jis | euc | utf8
- 添付ファイルの文字コードを指定する。例)csv-utf8_ (「-」はなくてもOK)
- my $number_dir = './data/number';
- 登録番号(シリアルナンバー)保存ディレクトリを相対パスで設定します。
- my $msg_dir = './data/msg';
- 返信メール文書保存ディレクトリを相対パスで設定します。
- my $msg_dir = './data/msg';
- 値によるメールの振り分けを設定します。
書式)変数名=値=>To/Cc/Bcc[改行]
記述例)_Subject_問い合わせの種類_=問い合わせ=>toiawase@domain.x/cc1@domain.x,cc2@domain.x/bcc1@domain.x,bcc2@domain.x
- $env::file_mode = 0604;
- ファイル用パーミッションを設定します。
- $env::dir_mode = 0705;
- ディレクトリ用パーミッションを設定します。
- $env::clipboard = './data/clipboard';
- 一時保存ファイルディレクトリの位置を相対パスで設定します。
- $env::public_clipboard = './clipboard';
- ブラウザからアクセス可能な一時保存ファイルディレクトリの位置を相対パスで設定します。
- $env::post_max_size = 100000000;
- ファイルアップロード最大容量を設定します。
要素名(name="")による入力チェック設定
- メールヘッダを指定する記述
- 入力欄の名前が"_"で始まる値はメールヘッダになります。メール送信時には「差出人アドレス:○○」等の形にされます。
- _To
- 宛先アドレス
- _From
- 差出人アドレス
- _Subject
- 表題/表題中の"_NAME_"は「差出人の名前」に、"_ID_"は「登録番号」に変換されます。
名前を変えたいときは"_○○"とします。例)_From_送信者
- 差出人名フィールドを指定する
- 入力欄の名前が"_NAME_"で始まる値は差出人の名前となります。例)_NAME_お名前
- 入力の強制
- 入力欄の名前が"_"で終わる値は入力が強制されます。例)コメント_
- 入力の同一性確認
- 入力欄の名前が"!"で終わる値は、同じ名前の項目が全て同じ文字列かどうかチェックします。例)パスワード_P!
- 形式のチェック
- 入力欄の名前が次の文字列で終わる値は、形式をチェックします。
- _E
- E-Mail のチェック(複数のアドレス)
- _e
- E-Mail のチェック
- _A
- 半角英数字(半角英数字 _ 半角空白 , . -)のチェック
- _a
- 半角英数字のチェック
- _N
- 半角数字のチェック
- _n
- 半角数字のチェック(計算結果に変換)
- _U
- URLのチェック
- _p
- 半角英数字文字列かどうかチェック
- _P
- 半角英数字で始まる半角英数字文字列かどうかチェック
- _P-4-8
- 4文字以上8文字以下の半角英数字で始まる半角英数字文字列かどうかチェック
- _K
- カタカナのチェック
- _H
- ひらがなのチェック
例)
- ホームページ_U
- URL チェック
- メールアドレス_E_
- 入力の強制 + E-Mail チェック
- 順序の明示
- データの順番を指定するときは冒頭に数字と_を加えます。この指定がない場合、通常はデータが送られてきた順になります。順番指定のあるデータと指定のないデータが混在している場合、指定のないデータの順序が乱れることがあります。
- 01_お名前_
- 一つ目のデータ + 必須項目
- 02__From_メールアドレス_e_
- 二つ目のデータ + 差出人アドレス(From) + メールアドレスチェック + 必須項目
hidden フィールドによる環境設定
- _THANKS
- 送信お礼ページを指定します。
- <input type="hidden" name="_THANKS" value="(相対パス)">
- フォームのある HTML から見た相対パスで指定された HTML ファイルを表示します。
- <input type="hidden" name="_THANKS" value="変数名1==値1==相対パス1||変数名2==値2==相対パス2">
- 場合分けする例。「変数名1」が「値1」のとき「相対パス1」を表示し、「変数名2」が「値2」のとき「相対パス2」を表示します。「||」は条件区切りです。条件は順番に評価されます。
移動先パスの先頭に「!!」をつけると、指定されたファイルに直接移動します。移動先パスおよびお礼ページ中の次のタグは自動変換されます。
- <ID> | ##ID##
- 登録番号
- <PASSWORD> | ##PASSWORD##
- パスワード(最後のパスワード項目)
- <DATA> | ##DATA##
- 送信データのリスト(移動先パスでは変換されません)
- <EMAIL> | ##EMAIL##
- 送信先アドレス
- <MASTER_EMAIL> | ##MASTER_EMAIL##
- CGI 管理者アドレス
- <NAME> | ##NAME##
- 差出人の名前
- <!--FIELD:変数名--> ... <!--/FIELD--> | ##FIELD:変数名##
- 対応するフィールドの値に置き換えます。
- <!--FIELDNUM:変数名--> ... <!--/FIELD--> | ##FIELDNUM:変数名##
- 対応するフィールドの値の数字部分に置き換えます。
タグの最初に "ENCODED_" をつけると URL エンコードされた値に変換されます。移動先パスでは常に URL エンコードされた値となります。
- _DATA
- 送信データの形式を指定します。
- csv
- 送信をCSV形式の添付ファイルに変換する。
- tsv
- 送信をタブ区切りテキストの添付ファイルに変換する。
- csv_ または tsv_
- メッセージにもデータを含める。
例)
- <input type="hidden" name="_DATA" value="csv">
- CSV形式の添付ファイルに変換する
- _ID
- 自動発行する登録番号を設定します。
- _ID_会員番号
- 「会員番号」という名前で発行したいとき。
- _ID-A_会員番号
- 識別記号を付けたい場合。→例)01234A
例)
- <input type="hidden" name="_ID" value="番号保存ファイル名">
- 番号保存ファイル名は他のフォームと重複しないユニークな半角英字名にしてください。
- _MSG
- 自動返信メールのメッセージ(ファイル名)を指定します。メールヘッダ"From"に対応する入力欄が必要です。返信文中の次のタグは自動変換されます。
- <ID> | ##ID##
- 登録番号
- <PASSWORD> | ##PASSWORD##
- パスワード(最後のパスワード項目)
- <DATA> | ##DATA##
- 送信データのリスト
- <EMAIL> | ##EMAIL##
- 送信先アドレス
- <MASTER_EMAIL> | ##MASTER_EMAIL##
- CGI 管理者アドレス
- <NAME> | ##NAME##
- 差出人の名前
タグの最初に "ENCODED_" をつけると URL エンコードされた値に変換されます。
- <input type="hidden" name="_MSG_登録ありがとうございます" value="返信文ファイル名">
- あらかじめ返信文ファイルを作成し、初期設定で指定したパス($msg_dir)に設置してください。返信文ファイル名は他のフォームと重複しないユニークな半角英字名にしてください。
- <input type="hidden" name="_MSG" value="変数名1==値1==返信文ファイル名1||変数名2==値2==返信文ファイル名2">
- 場合分けする例。「変数名1」が「値1」のとき「返信文ファイル名1」から返信メールを作成し、「変数名2」が「値2」のとき「返信文ファイル名2」から返信メールを作成します。「||」は条件区切りです。条件は順番に評価されます。
ファイルごとに表題を設定するには一行めに、「Subject:メールの表題[改行]」を入れます。
- _HERE
- フォームのあるページを明示的に指定します。このオプションはリンク元を送信しない環境で動作させるためには必須です。
- <input type="hidden" name="_HERE" value="絶対パス">
- 絶対パスで指定します。
- _CONFIRMATION
- 送信内容確認ページを経由するよう設定します。このオプションは最後のページに記述します。
- <input type="hidden" name="_CONFIRMATION" value="true">
- _CONFIRMATIONPAGE が指定されていない場合、フォームのあるページから送信内容確認ページを作成します。
- _CONFIRMATIONPAGE
- 送信内容確認ページを指定します。このオプションは最後のページに記述します。
- <input type="hidden" name="_CONFIRMATIONPAGE" value="./confirmation.html">
- フォームのあるページから見た相対パスで「./confirmation.html」に対応するファイルを送信内容確認ページのテンプレートとします。
フォームページおよび送信内容確認ページのための独自タグ
- <!--FORM_ONLY--> ... <!--/FORM_ONLY-->
- フォームでのみ表示する領域を指定します。
- <!--CONFIRMATION: ... -->
- 確認画面でのみ「 ... 」部分を表示します。
- <!--FIELD:変数名--> ... <!--/FIELD--> | ##FIELD:変数名##
- 対応するフィールドの値に置き換えます。
- <!--FIELDNUM:変数名--> ... <!--/FIELD--> | ##FIELDNUM:変数名##
- 対応するフィールドの値の数字部分に置き換えます。
- _NEXT, _NEXTPAGE, _PREV, _PREVPAGE
- フォームをページ分割する場合使用します。
- <input type="hidden" name="_PREVPAGE" value="./form.html">
- 前のページを相対パスで指定します。
- <input type="submit" name="_PREV" value="前のページ">
- 前のページへ移動するボタンです。
- <input type="hidden" name="_NEXTPAGE" value="./form2.html">
- 次のページを相対パスで指定します。
- <input type="submit" name="_NEXT" value="次のページ">
- 次のページへ移動するボタンです。
- _NOCHECK
- ページが分割されているとき書式チェックをスキップするオプションです。
- <input type="hidden" name="_NOCHECK" value="true">
- 書式チェックをスキップします。
- _DATE
- 登録日時を送信します。下記日時書式を指定できます。
- -
- 2005-11-25 13:23:55
- v
- 2005/15/25T13:23:55Z
- /
- 2005/11/25/(金) 1:23:55 p.m.
- /24
- 2005/11/25/(金) 13:23:55
- c
- 2005年11月25日(金) 午後1時23分55秒
- c24
- 2005年11月25日(金) 13時23分55秒
- cj
- 平成17年11月25日(金) 午後1時23分55秒
- c24j
- 平成17年11月25日(金) 13時23分55秒
- cjk
- 平成一七年一一月二五日(金) 午後一時二三分五五秒
- c24jk
- 平成一七年一一月二五日(金) 一三時二三分五五秒
- cJk
- 平成一七年霜月二五日(金) 午後一時二三分五五秒
- c24Jk
- 平成一七年霜月二五日(金) 一三時二三分五五秒
例)<input type="hidden" name="_DATE" value="/24">
注意
- FORM METHOD
- 必ず POST にします。
- チェックボックス対策
- チェックボックスはチェックされていないと値が送られませんが、hidden を使って値の存在を明示することができます。値が"*"の場合無視されます。
- <input type="hidden" name="チェックボックスと同じ名前" value="*">
- チェックボックやラジオボックスの存在を明示します。
- 文字化け対策
-
- <input type="hidden" name="_" value="_">
- <form> の直後に入れておくと文字化けしにくくなります。値は全角の下線。
- name 属性に値を埋め込む
- name 属性に URL エンコードされた値の組を指定できます。
- <input type="submit" name="_THANKS=/download1.html" value="ダウンロードページ1" />
<input type="submit" name="_THANKS=/download2.html" value="ダウンロードページ2" /> - 押されたボタンによって送信お礼ページを切り替える例
- <input type="submit" name="name=value&name2=value2" value="1" />
- 一つのチェックボックスに複数の値を持たせる例(value は無視されます)。
作成者
- 著作権
- 株式会社CMONOS
- ライセンス
- MIT ライセンス
- お問い合わせ
- 株式会社CMONOS お問い合わせフォーム
- ご意見・ご要望
- 株式会社CMONOS フィードバックフォーム
- フォーラム(BBS)
- 株式会社CMONOS フォーラム
- 責任の制限
- 過失を含むいかなる場合であっても、株式会社CMONOS は本スクリプトを使用したことに起因する若しくは関連する付随的、間接損害について、一切の責任を負いません。
バージョン履歴
- 2015年2月5日
-
- 送信内容を CSV として添付したとき、送信内容が多いと Mac で文字化けする不具合を修正しました。
- 2014年3月11日
-
- メールの振り分け設定を追加しました。(沢田様ご協力ありがとうございます!)
- 自動返信メールやお礼ページ URL に送信項目を個別に埋め込める独自タグを追加しました。(沢田様ご協力ありがとうございます!)
- 2013年7月1日
-
- 環境変数で日本のタイムゾーンを明示的に指定するようにしました。
- 2013年1月10日
-
- postman.cgi ファイルで、Cc メールおよび Bcc メールの送信先を指定できるようにしました。
- 2012年12月2日
-
- 入力の同一性確認を指定した値が送信されない不具合を修正しました。
- 「差出人の名前」フィールドを指定できるようにしました。
- 画像以外の添付ファイルが確認画面に表示されない不具合を修正しました。
- 2012年9月3日
-
- 「−」が文字化けする不具合を修正しました。半角の「-」に変換されます。
- 2012年6月20日
-