Formmail 解説&ダウンロードページ





主な機能と特徴

  1. FormmailはあなたのWEBページからフォームメールの送信を実現します。
  2. お名前・E-Mail・タイトル・コメントの4つの項目は未記入チェックが行えます。
  3. 送信者に対してコピーメールを自動送信することが可能です。
  4. 各ページのデザインもお好みでカスタマイズが可能です。
  5. さらにお好きな項目を15個まで追加出来ます。

    ※Formmailの動作にはセンドメールが使用出来る環境が必要です。


サンプル

サンプル用にページを2つ作ってみましたので参考にしてください。



ダウンロード
  • 以下のZIP圧縮ファイルをダウンロードしてください。


    Formmail v2.00
    (formmail.zip)


    続いて解凍しますので 解凍ソフト をお持ちで無い方はまず入手しましょう。
    解凍すると以下のファイルが展開します 。


    formmail.cgi
    formmail.css
    jcode.pl



  • ファイル名やファイル数を確認して、次へ進みましょう。

プログラムの設置
  • まずは formmail.cgi をメモ帳などのテキストエディタで開きます。


    最初の1行目

    を自分のプロバイダの環境に合わせて書き直します。
    大抵プロバイダのホームページに書いてあるので、探してみましょう。


    以下は初期設定部分の引用です。
    初心者の方は説明にしたがって赤字の重要設定項目を確認しましょう。
    ###++++++++++###
    ##  初期設定  ##
    ###++++++++++###
    
    ## このファイルの名前
    $cgifile = 'formmail.cgi';
    
    ## スタイルシートのパス
    $cssfile = 'formmail.css';
    
    ## メールの送信先
    $mailto = 'xxx@xxx.xxx';
    
    ## メールの件名
    $subject = 'フォームメールからの送信';
    
    ## 入力を必須にする項目
    ## 必須 = 1
    ## 任意 = 0
    $namecheck    = '1'; ## 名前
    $mailcheck    = '1'; ## メールアドレス
    $titlecheck   = '1'; ## タイトル
    $commentcheck = '1'; ## コメント
    
    ## 追加する項目
    ## あなたが独自に追加した要素名を$option?に指定します(半角英数)
    ## メールで表示される項目名として$op?nameに追加します(日本語可)
    ##---------------------------------------------------------------
    ## 例えば「あなたの年齢は?」という項目を追加した場合
    ## HTMLへの記述は↓のようになります
    ## <input type="text" name="age">
    ##
    ## この場合↓のように設定します
    ## $option1 = "age";
    ## $op1name = "年齢";
    ##---------------------------------------------------------------
    $option1 = '';
    $op1name = '';
    
    $option2 = '';
    $op2name = '';
    
    $option3 = '';
    $op3name = '';
    
    $option4 = '';
    $op4name = '';
    
    $option5 = '';
    $op5name = '';
    
    $option6 = '';
    $op6name = '';
    
    $option7 = '';
    $op7name = '';
    
    $option8 = '';
    $op8name = '';
    
    $option9 = '';
    $op9name = '';
    
    $option10 = '';
    $op10name = '';
    
    $option11 = '';
    $op11name = '';
    
    $option12 = '';
    $op12name = '';
    
    $option13 = '';
    $op13name = '';
    
    $option14 = '';
    $op14name = '';
    
    $option15 = '';
    $op15name = '';
    
    ## フォームの送信方法
    ## ※通常はこのまま使用してください
    $method = 'post';
    
    ## 文字コードの設定
    ## シフトJIS = sjis
    ## JIS       = jis
    ## EUC       = euc
    $moji_code = 'sjis';
    
    ## センドメールのパス
    $sendmail = '/usr/sbin/sendmail';
    
    ## 送信者にコピーメールを送信
    ## 送信する   = 1
    ## 送信しない = 0
    $cc = '0';
    
    ## 確認ページを表示
    ## 表示する   = 1
    ## 表示しない = 0
    $preview = '1';
    
    ## 確認ページで表示するメッセージ
    ## ※ここではHTMLタグが使用出来ます
    $check_msg = <<'HERE';
    <!-- ここから -->
    <b>以下の内容でメールを送信します。</b><br><br>
    内容を確認して「送信」ボタンを押してください。<br>
    修正する場合は「修正」ボタンを押してください。<br><br>
    <!-- ここまで -->
    HERE
    
    ## 送信完了ページで表示するメッセージ
    ## ※ここではHTMLタグが使用出来ます
    $complete_msg = <<'HERE';
    <!-- ここから -->
    <b>ありがとうございました。<br>
    メールは無事送信されました。</b>
    <!-- ここまで -->
    HERE
    
    ## 送信完了ページからの戻り先
    ## ※通常あなたのホームページ等を指定します
    $home = 'http://';
    
    ## 各ページ上部のデザイン
    ## ※ここではHTMLタグが使用出来ます
    $page_top = <<'HERE';
    <!-- ここから -->
    <br>
    <div align="center">
    <font color="#6D6D6D" size="5"><b>Formmail</b></font>
    <hr width="98%" size="1">
    </div><br><br>
    <!-- ここまで -->
    HERE
    
    ## 文字コード変換ライブラリ
    require 'jcode.pl';
    
    ###++++++++++###
    ##  設定完了  ##
    ###++++++++++###



  • 続いて送信用のHTMLページを用意します。
    こちらは添付されておりませんので、下記を参考に作成してください。

    まず form 属性の action にこのCGIを指定します。
    method 属性はあなたの環境に合わせて書き直してください。
    以下は[cgi-bin]ディレクトリに、このCGIプログラムを置いた場合。

    <form method="post" action="cgi-bin/formmail.cgi">



  • 続いて最低限必要な項目を作ります。
    送信ページには名前・E-Mail・タイトル・コメントの4つの項目が必要です。
    初期設定でこれらの未記入チェックを外した場合、その項目は不要です。

    それぞれの name 属性は必ず赤字の通りに設定してください。

    名前   <input type="text" name="name">
    E-Mail  <input type="text" name="mail">
    タイトル  <input type="text" name="title">
    コメント  <textarea name="comment"></textarea>

    この name 属性が正しくないと、メールが届きません。


  • 初期設定より項目を増やしたい時は、プログラム内の解説やサンプルを参考にしてください。


  • その他、デザインの調整等は初期設定部分やスタイルシート定義ファイル(formamil.css)から可能です。
    スタイルシート定義ファイルには予めいくつかの初期要素が記述されています。
    スタイルシートの定義方法等は各自で調べたうえでカスタマイズしてください。

ファイルの転送
  • 初期設定が済んだらいよいよファイルを転送します。
    FTPソフト をお持ちで無い方は こちら を参考にしてください。

    以下は[cgi-bin]ディレクトリ(フォルダ)に転送した場合の例です。
    ファイルやディレクトリの横に<755>などとありますが、これはパーミッション(アクセス権)です。
    パーミッションが正しく設定されていないとプログラムが正常動作しないので、ご注意ください。
    [www]┐
         ├ ・・(略)・・.html (あなたの作成した送信用ページ)
         |
         └ [cgi-bin] ┐
                      ├ formmail.cgi <755> プログラム本体
    ├ formmail.css <644> スタイルシート定義ファイル └ jcode.pl <644> 文字コード変換ライブラリ
  • 転送とパーミッションの設定が済んだら、早速送信テストをしてみましょう。
    フォームから送信した内容がメールで届いたらとりあえず成功です。

補足事項

  • フォームメールが正しく送られてこない
    次のことをもう一度確認してください。

    • センドメールまでのパスが正しいか。
    • 送信用ページのaction属性は正しく設定されているか。
    • 日本語変換ライブラリ(jcode.pl)までのパスはあっているか。



  • 動作しない、またはバグを発見した場合
    まずは サポートBBS にて症状を詳しく載せてみましょう。
    どう考えてもバグと思わしき症状を発見した場合は コンタクトフォーム からご連絡ください。



  • 更新履歴
    2007/05/18 v2.00を公開。
    1. 送信者にコピーメールを自動返信する機能を追加しました。
    2. スタイルシート定義ファイルを新たに用意しました。
    3. 各ページのデザインを若干変更しました。
    4. 送信メールのデザインを若干変更しました。
    5. 一部環境で文字コードの設定が正しく反映されない問題を修正しました。
    6. 一部環境で送信されたメールが正しく表示されない問題を修正しました。
    7. ソースコードを全面的に見直すことでパフォーマンスを向上させました。

    2001/04/01 v1.20を公開。
    1. 追加できる項目数を15個に増やしました。
    2. 送信メールのデザインを若干変更しました。
    3. 送信前の確認ページと送信完了ページを変更しました。
    4. ソースコードの見直しをすることで処理を簡略化しました。

    ※バージョンアップする場合は、すべてのファイルを上書きしてください。