Home > メールプログラム > POST-MAIL
|
特長
- ホームページの画面上で入力された内容を、指定した電子メールアドレスに送信する「フォームメール」です。
- ホームページへの訪問者からの感想やアンケート、資料の請求、注文の受け付け等々、汎用的な用途に利用することができます。
- サンプルは以下にあります。
- POST-MAILの機能的な特長は以下のとおりです。
- ブラウザから指定のアドレスへメール送信を行ないます。
- 送信者へも、自動で返信メールを送信することができます。
- 文字コードはUTF-8になります。
- サーバにインストールされたsendmailを利用して送信します。
- 項目ごとに「入力必須」を指定することができます。
- 2つの入力項目の内容が同一かどうかをチェックすることができます(メールアドレスやパスワードのチェック等)。
- 各画面はテンプレート式になっているため、ユーザサイドで自由に文字修正やデザイン変更をすることができます。
- セキュリティ対策として、確認画面から送信画面への推移はセッションチェックを行います(一旦確認画面を表示させます)。
- 設定により、メール本文をBase64エンコードで送信することができます(機種依存文字の扱いや、UTF-8版では海外利用者との使用に有効)。
- スマホ画面に対応したレスポンシブデザインです。
- このプログラムを利用する上での利用規定です。 必ず目を通しておいて下さい。 プログラムをダウンロードする場合、「利用規定」に同意したものとみなします。
プログラムの入手
- 以下の書庫ファイルをダウンロードします。
- ダウンロード後、解凍 します。解凍すると以下のファイルが展開されます。
postmail.cgi -------------- フォームメールプログラム init.cgi ------------------ 設定ファイル check.cgi ----------------- 動作チェックプログラム index.html ---------------- 送信フォーム(サンプル) style.css ----------------- スタイルシート data/log.cgi -------------- データファイル data/ses.cgi -------------- セッションファイル tmpl/mail.txt ------------- メール本文テンプレート tmpl/reply.txt ------------ 返信メール本文テンプレート tmpl/conf.html ------------ 確認画面テンプレート tmpl/thanks.html ---------- 送信完了画面テンプレート tmpl/error.html ----------- エラー画面テンプレート lib/CGI/Minimal.pm -------- データ受理モジュール [入手先] lib/jacode.pl ------------- コード変換モジュール [入手先] lib/base64.pl ------------- Base64変換モジュール [配布者: A. P. Barrett]
プログラムの設定及び設置
- 全体のディレクトリ構成とファイル位置の設置例は以下のとおりです(かっこ内はパーミッションの設定値)。
ディレクトリ構成例
public_html / index.html (トップページ) | +-- postmail / index.html ... 送信フォーム(ひな形) | postmail.cgi [705] | check.cgi [705] ... 動作テスト用プログラム | init.cgi [604] ... 設定ファイル | style.css | +-- lib / jacode.pl | | base64.pl | | | +-- CGI / *.* | +-- data / log.cgi [606] | ses.cgi [606] | +-- tmpl / mail.txt reply.txt conf.html thanks.html error.html
- init.cgi を エディタ で開いて以下の箇所を修正します。
- $cf{mailto} = "xxx@xxx.xxx";
- (送信するメールアドレスを指定します)
- $sendmail = "/usr/lib/sendmail";
- (sendmailのパスを指定します。プロバイダの指定するパスを確認してください)
- $cf{conv_code} = 0;
- (受け付けるデータの文字コードを自動変換する場合は「1」とします。通常は「0」のままで大丈夫ですが、本体プログラムの文字コードとは異なる送信フォーム [EUC-JP等] を作成する場合などは「1」とします)
- $cf{send_b64} = 0;
- (メール本文をBase64で送る場合は「1」とします。氏名の外字(はしご高・立つ崎等)や機種依存文字を扱う場合、UTF-8版で海外利用者への使用等に有効。Shift-JIS版ではShift-JISのまま、UTF-8版ではUTF-8のまま送信します)
- $cf{subject} = "フォームメール";
- (お好きなタイトル名に変更して下さい)
- $cf{reload} = 0;
- (送信後、単に完了メッセージを出すのであれば 0 を、所定のページへ自動ジャンプさせたい場合には、1 とします。後者の場合、ジャンプ先は $back で指定するURLとなります)
- $cf{back} = '../index.html';
- (送信後の戻り先URLパスを指定します)
- $cf{check_key} = 0;
- (送信フォームのname値の正当性をチェックする場合は「1」とします。正当性とは、英数字、アンダーバーハイフン、全角文字(日本語)であるかどうかをチェックします)
- $cf{denyhost} = '^210.123.44.* .sky-net.br$';
- (拒否するホスト名又はIPアドレスを半角スペースで区切って複数指定することができます)
- $cf{no_wd} = 'アダルト,出会い';
- (禁止ワードをコンマで区切って複数指定することができます)
- postmail.cgi, check.cgi を エディタ で開いて以下の箇所を修正します。
- #!/usr/local/bin/perl
- (プロバイダで定められたPerlへのパスを指定します)
- 以上、修正が完了したら各ファイルを所定のディレクトリへFTP転送し、以下のとおり アクセス権 (パーミッション) を設定します。
ファイル名 パーミッション 転送モード 一般サーバ suEXECサーバ
CGIWrapサーバpostmail.cgi
check.cgi755 or 705 701 or 700 アスキー init.cgi 666 or 604 601 or 600 アスキー data/log.cgi
data/ses.cgi666 or 606 600 アスキー lib/*.*
tmpl/*.*
style.css- - アスキー Tips:ファイル転送の仕方は以下のページを参考にしてください。
FTP : Windows編 FTP : Macintosh編 - 以上、作業が完了したら「チェックモード」で動作チェックを行ないましょう。 「check.cgi」に直接アクセスすることで、簡易的なチェックを行うことができます。 なお、動作チェック後はcheck.cgiはファイル削除しておきます。
補足事項
- 各画面はテンプレート式ですので、ユーザサイドで自由に内容やデザイン変更が可能です。
tmpl/mail.txt メッセージ本文 tmpl/reply.txt 返信用メッセージ本文 tmpl/conf.html 入力内容確認画面 tmpl/thx.html 送信完了画面 tmpl/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) E-mail <input type="text" name="_email" size="25" /> → name値の先頭に「アンダーバー 」を付けると、その入力値は 「入力必須」となります。 上記の例では、「メールアドレスは入力必須」となります。 ・name値への「全角文字」の使用は可能です (例) <input type=radio name="年齢" value="20歳代" /> → 上記のラジオボックスにチェックを入れて送信すると、 「年齢 = 20歳代」という書式で受け取ることができます。 ・制御タグ-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 メッセージ" />
- フォームメールについては、フォームページ側 (index.html) のHTMLの「FORMタグ」の記述の仕方がポイントだと思います。 以下のポイントを参考にしてみてください。 (これ以降のコーナは「HTML」に関することであり、「質問」はお受けできませんのでご注意ください)
おすすめページ
- Windows自宅サーバー用設定方法
Windows自宅サーバー用フォームメールの設定方法