# モジュール宣言/変数初期化 use strict; my %cf; #┌───────────────────────────────── #│ Captcha Mail : captmail.cgi - 2014/12/14 #│ copyright (c) KentWeb #│ http://www.kent-web.com/ #└───────────────────────────────── $cf{version} = 'captmail v2.01'; #┌───────────────────────────────── #│ [注意事項] #│ 1. このプログラムはフリーソフトです。このプログラムを使用した #│ いかなる損害に対して作者は一切の責任を負いません。 #│ 2. 送信フォームのHTMLページの作成に関しては、HTML文法の範疇 #│ となるため、サポート対象外となります。 #│ 3. 設置に関する質問はサポート掲示板にお願いいたします。 #│ 直接メールによる質問はお受けいたしておりません。 #└───────────────────────────────── # # [ 送信フォーム (HTML) の記述例 ] # # ・タグの記述例 (1) # おなまえ # → このフォームに「山田太郎」と入力して送信すると、 # 「name} = 山田太郎」という形式で受信します # # ・タグの記述例 (2) # お好きな色 # → このラジオボックスにチェックして送信すると、 # 「color} = 青」という形式で受信します # # ・タグの記述例 (3) # E-mail # → name値に「email」という文字を使うとこれはメールアドレス # と認識し、アドレスの書式を簡易チェックします # → (○) abc@xxx.co.jp # → (×) abc.xxx.co.jp → 入力エラーとなります # # ・タグの記述例 (4) # E-mail # → name値の先頭に「アンダーバー 」を付けると、その入力値は # 「入力必須」となります。 # 上記の例では、「メールアドレスは入力必須」となります。 # # ・name値への「全角文字」の使用は可能です # (例) # → 上記のラジオボックスにチェックを入れて送信すると、 # 「年齢} = 20歳代」という書式で受け取ることができます。 # # ・name値を「name」とするとこれを「送信者名」と認識して送信元の # メールアドレスを「送信者 <メールアドレス>」というフォーマットに # 自動変換します。 # (フォーム記述例) # (送信元アドレス) 太郎 # # ・制御タグ-2 # → 2つの入力内容が同一かをチェックする # → name値を「match」、value値を「項目1 + 半角スペース + 項目2」 # (例) # # ・制御タグ-3 # → name値の並び順を指定する(半角スペースで複数指定) # → 入力エラー画面及びメール本文の並びを指定します # (例) # # ・制御タグ-3 # → name値の並び順を指定する(半角スペースで複数指定) # → 入力エラー画面及びメール本文の並びを指定します # (例) #=========================================================== # ▼基本設定 #=========================================================== # このプログラムの文字コード (utf8 or sjis) # utf8 : UTF-8 # sjis : Shift-JIS $cf{kcode} = 'sjis'; # 送信先メールアドレス $cf{mailto} = ''; # sendmailのパス【サーバパス】 # → プロバイダの指定を確認のこと $cf{sendmail} = '/usr/sbin/sendmail'; # sendmailへの-fコマンド(プロバイダの仕様確認) # 0=no 1=yes $cf{send_fcmd} = 0; # 文字コード自動判別(0=no 1=yes) # → フォームの文字コード判別を行う場合 # → フォームがShift_JISの場合は「0」で概ねOK $cf{conv_code} = 0; # 文字コード変換モジュール # 1 : Jcode # 2 : Unicode::Japanese $cf{conv_pm} = 2; # フォームのname値の置き換えをする場合 # → 英字のname値を日本語に自動的に置き換えます。 # 例: 「email = xx@xx.xx」→「メールアドレス = xx@xx.xx」 $cf{replace} = { 'name' => 'お名前', 'email' => 'メールアドレス', }; # base64変換方式 # 1 : base64.pl(ライブラリ方式) # 2 : MIME::Base64(モジュール方式) $cf{b64_type} = 2; # 最大受信サイズ(Byte) # → 例 : 102400Bytes = 100KB $cf{maxdata} = 102400; # 送信者へのメール返信 # 0=no 1=yes $cf{auto_res} = 1; # メールタイトル $cf{subject} = 'お問い合わせフォーム'; # 返信向けメールタイトル $cf{sub_reply} = 'お問い合わせありがとうございます'; # 本体プログラム【URLパス】 $cf{mail_cgi} = './captmail.cgi'; # ログファイル【サーバパス】 $cf{logfile} = './data/log.cgi'; # テンプレートディレクトリ【サーバパス】 $cf{tmpldir} = './tmpl'; # 一時ディレクトリ【サーバパス】 $cf{tmpdir} = './data/tmp'; # 送信後の形態 # 0 : 完了メッセージを出す. # 1 : 戻り先 ($back) へ自動ジャンプさせる. $cf{reload} = 0; # 送信後の戻り先【URLパス】 # → http://から記述する $cf{back} = 'http://www.example.com/'; # フォームのname値の正当性をチェックする # → 半角文字は英数字、アンダーバー、ハイフンはOK。全角は全てOK # 0=no 1=yes $cf{check_key} = 1; # 同一IPアドレスからの連続送信制御 # → 許可する間隔を秒数で指定(0にするとこの機能は無効) $cf{block_post} = 60; # 送信は method=POST 限定 (セキュリティ対策) # 0=no 1=yes $cf{postonly} = 1; # ホスト名取得方法 # 0 : gethostbyaddr関数を使わない # 1 : gethostbyaddr関数を使う $cf{gethostbyaddr} = 0; # アクセス制限(複数あれば半角スペースで区切る、アスタリスク可) # → 拒否ホスト名又はIPアドレスの記述例 # (前方一致は先頭に ^ をつける)【例】^210.12.345.* # (後方一致は末尾に $ をつける)【例】*.anonymizer.com$ $cf{denyhost} = ''; # 禁止ワード # → 投稿時禁止するワードをコンマで区切る $cf{no_wd} = ''; # -------------------------------------------------------------- # # [ 以下は「画像認証機能」機能(スパム対策)を使用する場合の設定 ] # # 画像認証機能の使用 # 1 : ライブラリ版(pngren.pl) # 2 : モジュール版(GD::SecurityImage + Image::Magick)→ Image::Magick必須 $cf{use_captcha} = 1; # 認証用画像生成ファイル【URLパス】 $cf{captcha_cgi} = './captcha.cgi'; # 画像認証プログラム【サーバパス】 $cf{captcha_pl} = './lib/captcha.pl'; $cf{captsec_pl} = './lib/captsec.pl'; $cf{pngren_pl} = './lib/pngren.pl'; # 画像認証機能用暗号化キー(暗号化/復号化をするためのキー) # → 適当に変更してください。 $cf{captcha_key} = 'captcha_mailer'; # 投稿キー許容時間(分単位) # → 投稿フォーム表示後、送信ボタンが押されるまでの可能時間。 $cf{cap_time} = 30; # 投稿キーの文字数 # ライブラリ版 : 4〜8文字で設定 # モジュール版 : 6〜8文字で設定 $cf{cap_len} = 6; # 画像/フォント格納ディレクトリ【サーバパス】 $cf{bin_dir} = './lib/bin'; # [ライブラリ版] 画像ファイル [ ファイル名のみ ] $cf{si_png} = "casual.png"; # [モジュール版] 画像フォント [ ファイル名のみ ] $cf{font_ttl} = "tempest.ttf"; #=========================================================== # ▲設定完了 #=========================================================== # for content-type charset $cf{charset} = $cf{kcode} eq 'utf8' ? 'utf-8' : 'shift_jis'; # 設定値を返す sub init { return %cf; } 1;