(フォームメール)
| ■ サンプルと特長 |
- ホームページの画面上で入力された内容を、指定した電子メールアドレスに送信する「フォームメール」です。
- ホームページへの訪問者からの感想やアンケート、資料の請求、注文の受け付け等々、汎用的な用途に利用することができます。
- サンプルは以下にあります。POST-MAIL
- PostMailの機能的な特長は以下のとおりです。
- ブラウザから指定のアドレスへメール送信を行ないます。
- 送信形式は、sendmailのほかに Perlモジュール(IO:Socket)を使った送信も可能です(*1)。このため、sendmailを利用できないサーバでもフォームメールの設置が可能です。
- 送信前に確認画面をいったん表示させることが可能です(設定で選択)。
- 項目ごとに「入力必須」を指定することができます。
- 2つの入力項目の内容が同一かどうかをチェックすることができます。(メールアドレスの入力チェックやパスワードチェックなど)
- 各画面はテンプレート式になっているため、ユーザサイドで自由に文字修正やデザイン変更をすることができます。
Perlモジュールが使用できないサーバ(@niftyなど)や、CGIからのソケット通信が禁止されているサーバではご利用できません。
- なお、HTMLページ側 ( postmail.html ) の「フォームタグ」の記述の仕方については、これはHTML文法上に従って変更していただくことになりますが、フォームタグの記述例については「補足事項」を参考にして下さい。詳しくは、「とほほのWWW入門」の「
- このスクリプトを利用する上での利用規定です。必ず目を通しておいて下さい。 スクリプトをダウンロードする場合、無条件に「利用規定」に同意したものとみなします。
| プログラムは、セキュリティ対策を施した v3.4以降を必ずご使用ください。 |
| ■ プログラムの入手 |
- 以下の書庫(圧縮)ファイルをダウンロードします。
Ver: 4.32 
postmail.zip
- ダウンロード後、解凍 します。解凍すると以下のファイルが展開されます。
- postmail.cgi
- postmail.html
- data/log.cgi
- tmpl/body.txt
- tmpl/conf.html
- tmpl/thx.html
- tmpl/err1.html
- tmpl/err2.html
- lib/io-socket.pl
- lib/jcode.pl ... ( 歌代和正氏のライブラリを再配布するものです )
- また、任意ですが、別途以下のライブラリを入手しておくことを推奨します。mimew.pl ( 入手先: mime_plsのページ )
(生田昇氏作のBASE64変換ライブラリ)
| ■ プログラムの修正 |
- ホームディレクトリ(ここでは public_htmlディレクトリとします)の下に、postmailディレクトリを作成し、さらにその配下に libディレクトリを設置します。全体のディレクトリ構成とファイル位置の設置例は以下のとおりです。(かっこ内はパーミッションの設定値)
【ディレクトリ構成例】 public_html / index.html (トップページ) | +-- postmail / postmail.html | postmail.cgi [705] | +-- lib / jcode.pl [604] | io-socket.pl [604] | mimew.pl [604] ... 任意 | +-- data / log.cgi [606] | +-- tmpl / body.txt conf.html thx.html err1.html err2.html
- postmail.cgi を エディタ で開いて以下の箇所を修正します。
- #!/usr/local/bin/perl
- (プロバイダで定められたPerlへのパスを指定します)
- $mimew = './mimew.pl';
- (MIMEエンコードライブラリを使う場合、mimier.pl をパス付きで指定します。これはメールヘッダの全角文字をBASE64エンコードする機能で、この機能の利用を推奨しています)
- $mailto = "xxx@xxx.xxx";
- (送信するメールアドレスを指定します)
- $subject = "フォームメール";
- (お好きなタイトル名に変更して下さい)
- $reload = 0;
- (送信後、単に完了メッセージを出すのであれば 0 を、所定のページへ自動ジャンプさせたい場合には、1 とします。後者の場合、ジャンプ先は $back で指定するURLとなります)
- $back = '../index.html';
- (送信後の戻り先URLです。http://からのフルパスで指定します)
- $send_type = 1;
- (メールの送信形式を指定します。「1」はsendmail送信、「2」はPerlモジュールを使った送信方法になります。「2」を利用する場合、プロバイダ側でPerlモジュールによるソケット通信が可能である必要があります)
- $sendmail = "/usr/lib/sendmail";
- ($send_typeで「1」の場合、メールプログラムまでのパスを指定します。プロバイダの指定するパスを確認してください)
- $denyhost = '^210.123.44.* .sky-net.br$';
- (拒否するホスト名又はIPアドレスを半角スペースで区切って複数指定することができます)
- $no_wd = 'あほ,アホ';
- (禁止ワードをコンマで区切って複数指定することができます)
- $server = "mail.server.xx.jp";
- ($send_typeで「2」の場合、SMTPサーバ名を指定します)
- $port = 25;
- ($send_typeで「2」の場合、SMTPのポート番号を指定します。通常は25です)
- $pop_bef_smtp = 0;
- ($send_typeで「2」の場合、POP before SMTPを使用しない場合は「0」を、使用する場合は「1」とします)
- $pop3sv = "mail.server.xx.jp";
- ($send_typeで「2」で、$pop_bef_smtpが「1」の場合、POP3サーバ名を指定します)
- $pop3port = 110;
- ($send_typeで「2」で、$pop_bef_smtpが「1」の場合、POP3のポート番号を指定します。通常は110です)
- $user = user_id;
- ($send_typeで「2」で、$pop_bef_smtpが「1」の場合、POP3サーバのユーザIDを指定します)
- $pass = password;
- ($send_typeで「2」で、$pop_bef_smtpが「1」の場合、POP3サーバのパスワードを指定します)
- 以上、修正が完了したら各ファイルを所定のディレクトリへFTP転送し、以下のとおり アクセス権 (パーミッション) を設定します。
ファイル名 パーミッション 転送モード 一般サーバ suEXECサーバ
CGIWrapサーバpostmail.cgi 755 or 705 701 or 700 アスキー jcode.pl
io-socket.pl
mimew.pl644 or 604 600 アスキー log.cgi 666 or 606 600 アスキー *.html
*.txt- - アスキー
Tips:ファイル転送の仕方は以下のページを参考にしてください。
Windows編
Mac編
- 以上、設置が完了したらチェックモードで起動させてみましょう。チェックモードとする場合には、postmail.cgi の末尾に、「?mode=check」という引数を付けて直接呼び出します。【起動例】
http://~~/postmail/postmail.cgi?mode=check
- チェックモードで特にエラーが表示されないようであれば、最後にHTMLから postmail.htmlにリンクします。【タグ記述例】
メール送信フォーム
| ■ 補足事項 |
- 各画面はテンプレート式ですので、ユーザサイドで自由に内容やデザイン変更が可能です。
tmp_body.txt メッセージ本文 tmp_conf.html 入力内容確認画面 tmp_thx.html 送信完了画面 tmp_err1.html 一般エラー画面 tmp_err2.html 入力内容エラー画面
※【注】
各HTMLファイル中のコメント文 ( など) および、 先頭にドルマークが付加されたもの($back など)は削除しないように注意してください。
それ以外は原則として自由に変更して構いません。
- postmail.htmlは送信フォーム見本ですが、注意事項としては以下のとおりです。
[ 送信フォーム (HTML) の記述方法 ] ・タグの記述 (1) おなまえ → このフォームに「山田太郎」と入力して送信すると、 「name = 山田太郎」という形式で受信します ・タグの記述 (2) お好きな色 → このラジオボックスにチェックして送信すると、 「color = 青」という形式で受信します ・タグの記述 (3) E-mail → name値に「email」という文字を使うとこれはメールアドレス と認識し、アドレスの書式を簡易チェックします → (○) abc@xxx.co.jp → (×) abc.xxx.co.jp → 入力エラーとなります ・タグの記述 (4) メール控え必要 → メールの控えを CC で送信者へも返信します。 ただし、name="email" のフィールドへの入力が必須となります。 ・タグの記述 (5) E-mail → name値の先頭に「アンダーバー 」を付けると、その入力値は 「入力必須」となります。 上記の例では、「メールアドレスは入力必須」となります。 ・name値への「全角文字」の使用は可能です (例) → 上記のラジオボックスにチェックを入れて送信すると、 「年齢 = 20歳代」という書式で受け取ることができます。 ・コマンドタグ (1) → 入力必須項目を強制指定する(半角スペースで複数指定可) → ラジオボタン、チェックボックス対策 → name値を「need」、value値を「必須項目1 + 半角スペース +必須項目2 + 半角スペース ...」 (例) ・コマンドタグ (2) → 2つの入力内容が同一かをチェックする → name値を「match」、value値を「項目1 + 半角スペース + 項目2」 (例) ・コマンドタグ (3) → メール件名を指定する → この場合、設定で指定する $subject より優先されます。 (例) - フォームメールについては、フォームページ側 (postmail.html) のHTMLの「FORMタグ」の記述の仕方がポイントだと思います。以下のポイントを参考にしてみてください。(これ以降のコーナは「HTML」に関することであり、「質問」はお受けできませんのでご注意ください)
【FORMタグの記述例】
| ■ おすすページ |
- PostMail の表示用スキン(Flash版)
Kei Laboratory
- Windows自宅サーバー用設定方法
Windows自宅サーバー用フォームメールの設定方法
0 件のコメント:
コメントを投稿