Home > メールプログラム > CLIP-MAIL
|
特長
- ホームページの画面上で入力された内容を、指定した電子メールアドレスに送信する「フォームメール」です。
- ダウンロード数で人気上位にある POSTMAIL の上位版になります。
- サンプルは以下にあります。
- CLIP-MAILの機能的な特長は以下のとおりです。
- 送信ログを蓄積し、管理画面からCSV形式で自由にダウンロードすることができます。
- 二重送信を防止することができます。(同一内容の連続送信を制限)
- 自動応答で、送信者に対して返信メールを送信することができます。
- 画像などのバイナリファイルを、添付メールで送信することができます(設定でオフにすることも可能)。
- 添付メール機能では、拡張子単位でファイル形式を制限することができます。
- 各画面のテンプレートファイルは、POSTMAILと互換がありますので、そのまま利用することができます。
- 文字コードはUTF-8になります。
- セキュリティ対策として、確認画面から送信画面への推移はセッションチェックを行います。
- 設定により、メール本文をBase64エンコードで送信することができます(機種依存文字の扱いや、UTF-8版では海外利用者との使用に有効)。
- スマホ画面に対応したレスポンシブデザインです。
- このプログラムを利用する上での利用規定です。必ず目を通しておいて下さい。プログラムをダウンロードする場合、「利用規定」に同意したものとみなします。
プログラムの入手
- 以下の書庫ファイルをダウンロードします。文字コードはUTF-8です。
- ダウンロード後、解凍 します。解凍すると以下のファイルが展開されます。
clipmail.cgi -------------- メール送信プログラム init.cgi ------------------ 設定ファイル admin.cgi ----------------- 管理用プログラム check.cgi ----------------- 設定チェック用プログラム index.html ---------------- 送信フォーム(サンプル) style.css ----------------- スタイルシートファイル tmpl/*.txt ---------------- テンプレートファイル tmpl/*.html --------------- テンプレートファイル lib/base64.pl ------------- Base64変換モジュール [配布者: A. P. Barrett] lib/CGI/Minimal.pm -------- データ受理モジュール [入手先] lib/CGI/Session.pm -------- セッション管理モジュール [配布元] lib/Digest/SHA/PurePerl.pm -- 暗号化モジュール [配布元] lib/jacode.pl ------------- コード変換モジュール [入手先] data/log.cgi -------------- 記録ファイル data/ses.cgi -------------- セッションファイル
プログラムの設定及び設置
- 全体のディレクトリ構成とファイル位置の設置例は以下のとおりです(かっこ内はパーミッションの設定値)。
ディレクトリ構成例
public_html / index.html (トップページ) | +-- clipmail / index.html | clipmail.cgi [705] | admin.cgi [705] ... 管理画面 | check.cgi [705] ... 動作チェックプログラム | init.cgi [604] ... 設定ファイル | +-- cmn / *.* | +-- lib / *.* | +-- data / log.cgi [606] | | ses.cgi [606] | | pass.dat [606] | | | +-- ses [707] / | +-- pwd [707] / | +-- upl [707] / | +-- tmpl / *.*
- init.cgi を エディタ で開いて以下の箇所を修正します。
- $cf{mailto} = 'xxx@xxx.xx';
- (送信するメールアドレスを指定します)
- $cf{sendmail} = '/usr/lib/sendmail';
- (sendmailのパスを指定します。プロバイダの指定するパスを確認してください)
- $cf{conv_code} = 0;
- フォームページ(postmail.html)からの文字コード自動判別を行う場合は「1」とします。フォームページとプログラム側の文字コードを同一の状態(初期値のまま)で使用する場合には「0」でおおむね大丈夫です。
- $cf{send_b64} = 0;
- (メール本文をBase64で送る場合は「1」とします。氏名の外字(はしご高・立つ崎等)や機種依存文字を扱う場合、UTF-8版で海外利用者への使用等に有効。Shift-JIS版ではShift-JISのまま、UTF-8版ではUTF-8のまま送信します)
- $cf{attach} = 1;
- (添付メールを許可するときは1を、許可しないときは0とします)
- $cf{extension} = "gif,jpg,jpeg,png,bmp,doc,docx,xls,xlsx,pdf";
- (添付メール許可のとき、添付ファイルの「拡張子」を指定したい場合にコンマ区切りで指定)
- $cf{img_max_w} = 200;
$cf{img_max_h} = 150; - (画像プレビューの時の横幅・縦幅の最大表示サイズを指定します)
- $cf{maxdata} = 1024000;
- (1回あたりの最大受信サイズをバイト単位で指定します)
- $cf{auto_res} = 1;
- (自動返信をする場合は「1」とします。その必要があに場合は「0」とします)
- $cf{subject} = 'フォームメール';
- (受け取りメールの件名を指定します)
- $cf{reload} = 0;
- (送信後、単に完了メッセージを出すのであれば「0」を、所定のページへ自動ジャンプさせたい場合には、「1」とします)
- $cf{back} = 'http://www.xxx.xxx/';
- (送信後の戻り先URLです。http://からのフルパスで指定します)
- $cf{check_key} = 1;
- (送信フォームのname値の正当性をチェックする場合は「1」とします。正当性とは、英数字、アンダーバーハイフン、全角文字(日本語)であるかどうかをチェックします)
- $cf{denyhost} = '^210.123.44.* .sky-net.br$';
- (拒否するホスト名又はIPアドレスを半角スペースで区切って複数指定することができます)
- $cf{use_captcha} = 1;
- スパム対策に画像認証を使用する場合の設定です。使用しない場合は「0」、使用する場合でライブラリー版を使用する場合は「1」、モジュール版を使用する場合は「2」とします
※画像認証(投稿キー機能)についての詳細は右記ページをご覧ください。: 画像認証について - $cf{max_failpass} = 5;
- (管理パスワードの最大間違い制限を指定します。この回数以上になるとログインがロックされます。
※運用の注意点は右のリンクをご覧ください: 管理パスワードについて)
- clipmail.cgi, admin.cgi, check.cgi を エディタ で開いて以下の箇所を修正します。
- #!/usr/local/bin/perl
- (プロバイダで定められたPerlへのパスを指定します)
- 以上、修正が完了したら各ファイルを所定のディレクトリへFTP転送し、以下のとおり アクセス権 (パーミッション) を設定します。
ファイル名 パーミッション 転送モード 一般サーバ suEXECサーバ
CGIWrapサーバclipmail.cgi
admin.cgi
check.cgi755 or 705 701 or 700 アスキー init.cgi 644 or 604 600 アスキー cmn/*.css
tmpl/*.html, *.txt
data/log.cgi
data/ses.cgi
lib/*.*- - アスキー uplディレクトリ 777 or 707 755 or 705 - Tips:ファイル転送の仕方は以下のページを参考にしてください。
FTP : Windows編 FTP : Macintosh編 - 以上、作業が完了したら「チェックモード」で動作チェックを行ないましょう。「check.cgi」に直接アクセスすることで、簡易的なチェックを行うことができます。なお、動作チェック後はcheck.cgiはファイル削除しておきます。
補足事項
- 各画面はテンプレート式ですので、ユーザサイドで自由に内容やデザイン変更が可能です。
mail.txt メッセージ本文 reply.txt 返信メッセージ本文 conf.html 入力内容確認画面 thanks.html 送信完了画面 error.html エラー画面 【注意事項】
- 各HTMLファイル中のコメント文 (<!-- cell_begin --> など) および、「!」で囲まれた文字(!back! など)は削除しないように注意してください。それ以外は原則として自由に変更して構いません。
- name値は日本語も使用できますが、次の制限事項があります。
使用可能な文字: 英数字、アンダーバー、ハイフン、全角文字(日本語)
- index.htmlは送信フォーム見本ですが、注意事項としては以下のとおりです。
[ 送信フォーム (HTML) の記述方法 ] ・タグの記述 (1) おなまえ <input type="text" name="name" size=25> → このフォームに「山田太郎」と入力して送信すると、 「name = 山田太郎」という形式で受信します ・タグの記述 (2) お好きな色 <input type="radio" name="color" value="青"> → このラジオボックスにチェックして送信すると、 「color = 青」という形式で受信します ・タグの記述 (3) E-mail <input type="text" name="email" size=25> → name値に「email」という文字を使うとこれはメールアドレス と認識し、アドレスの書式を簡易チェックします → (○) abc@xxx.co.jp → (×) abc.xxx.co.jp → 入力エラーとなります ・タグの記述 (4) <input type="checkbox" name="cc" value="1" checked> メール控え必要 → メールの控えを CC で送信者へも返信します。 ただし、name="email" のフィールドへの入力が必須となります。 ・タグの記述 (5) E-mail <input type="text" name="_email" size=25> → name値の先頭に「アンダーバー 」を付けると、その入力値は 「入力必須」となります。 上記の例では、「メールアドレスは入力必須」となります。 ・name値への「全角文字」の使用は可能です (例) <input type="radio" name="年齢" value="20歳代"> → 上記のラジオボックスにチェックを入れて送信すると、 「年齢 = 20歳代」という書式で受け取ることができます。 ・タグの記述例 (5) <添付メール許可の場合> <input type="file" name="clip-1" size="40"> → name値を「clip-」+「数字」にしてください。 → 「数字」を変えることで、参照用フィールドを複数用意することができます。 ・制御タグ-1 → 入力必須項目を強制指定する(半角スペースで複数指定可) → ラジオボタン、チェックボックス対策 → name値を「need」、value値を「必須項目1 + 半角スペース +必須項目2 + 半角スペース ...」 (例) <input type="hidden" name="need" value="名前 メールアドレス 性別"> ・制御タグ-2 → 2つの入力内容が同一かをチェックする → name値を「match」、value値を「項目1 + 半角スペース + 項目2」 (例) <input type="hidden" name="match" value="email email2"> ・制御タグ-3 → name値の並び順を指定する(半角スペースで複数指定) → 入力エラー画面及びメール本文の並びを指定します (例) <input type="hidden" name="sort" value="name email メッセージ" />