Form mailerメールフォームCGIの導入方法について
Form mailerはフリーのメールフォームCGIで、postmailとともによく使われるプログラムです。
postmailと違って、別途モジュールファイルをダウンロードする手間は掛かります。
しかし複数のメールフォームを一つのCGI管理画面で運営できる利点があります。
Form mailerメールフォームCGI
本記事ではフリーのお問い合わせメールフォーム「Form mailer」をご紹介します。
機能が豊富であり、複数のメールフォームを一括管理できる管理画面が用意されています。
今回はこのForm mailerの初期導入方法について詳しく解説します。
postmailとForm mailerの違い
無料で利用できるメールフォームと言えば、他にpostmailなどのフリーCGIが有名ですね。
個人的にこれらのフリープログラムは、用途別に使い分けた方が良いと思っています。
WEB上に管理画面がおける
postmailとForm mailerの大きな違いは、Form mailerにはWEB上に管理画面がある事です。
この管理画面から送信先や自動返信先などに使うメールアドレスの設定ができます。
postmailも導入は非常に簡単ですが、init.cgiファイルに設定を記述してそれをアップします。
Form mailerはそういった設定がWEB上でできる訳ですね。
複数のメールフォーム設定を管理
普通は一つのメールフォームに対しCGIファイル一式が1セット必要になりますよね。
一つのCGIファイルに設定ファイルは1つしかないからです(postmailならinit.cgi)。
Form mailerは管理画面から複数の設定データを生成できるので、複数のお問い合わせフォームページを一括管理する事ができます。
用途ごとのメールフォームの種類
・お問い合わせフォーム
・各種依頼フォーム
・採用募集フォーム
例えばWEBサイトに上記3パターンのフォームを設置している場合、postmailならば個別に3セット用意する訳です。
ところがForm mailerの場合、メールフォームのHTMLページは個別に用意しますが、CGI部分は一つで済みます。
各メールフォームの項目内容や送信先のアドレス、送信するメールの文面まで個別にコントロールできる訳です。
1つのサイトに複数のメールフォームを設置するなら、Form mailerがお勧めと言えますね。
お客様に貸し出す
WEB上に管理画面があるので、そのままクライアントに画面を貸し出す事もできますよね。
メール送信先が変わったり、送信メールの文面を変更したい場合にクライアント自身にておこなってもらえる訳です。
提供サービスの一環としても使えるのではないでしょうか。
ファイルのダウンロード
それでは早速ファイルのダウンロードから始めます。
下記サイトからダウンロードしましょう。
CGI配布サイト
このページのアーカイブ欄にある「f_mailer062d.zip」をクリックして、圧縮ファイルをダウンロードします。
ダウンロードしたファイルをダブルクリックして展開しましょう。
中には以下の構成が入っています。
構成ファイル群
cgi-binフォルダ(システムファイル)
f_mailer_form.html(サンプルフォーム)
thanks.html(送信完了用)
3つのうち2つのhtmlファイルはテスト用です。
HTMLソース内に重要なコードが書いてあるので、後で確認をします。
導入マニュアル
下記ページが設置方法のマニュアルです
モジュールファイルの取得
導入マニュアルにもありますが、ダウンロードしたファイル一式をUPするだけではこのCGIは動きません。
別途モジュールファイルをダウンロードして、アップする必要があります。
それが以下のファイルです。
別途ダウンロードが必要なファイル
・Jcode::CP932.pm
・HTML::SimpleParse.pm
・Authen::SASL.pm
それぞれCPANというサイトからダウンロードします。
Jcode::CP932モジュールのダウンロード
「lib/Jcode/CP932.pm」のリンクをクリックして、左メニューにあるdownloadをクリックします。
HTML::SimpleParseモジュールのダウンロード
「HTML::SimpleParse - a bare-bones HTML parser」のリンクをクリックして、左メニューにあるdownloadをクリックします。
Authen::SASLモジュールのダウンロード
「Authen::SASL - SASL Authentication framework」のリンクをクリックして、左メニューにあるdownloadをクリックします。
downloadのリンク
downloadのリンクがわかりにくいですが、どれもリンクを開いたページの左側メニュー欄にあります。
これらのアーカイブはいずれも、tar.gz形式で圧縮されています。
ダウンロードしたら、Lhaplus(ラプラス)などで解凍して下さい。
各pmファイルのみをコピー
それぞれには様々なファイルが入っていますが、cgi-binの中にコピーするのは一部です。
必要なファイル以外は無視して構いません。
コピーするファイルとその位置
cgi-bin/libの中に3つディレクトリを作り、それぞれのpmファイルを設置します。
cgi-bin/lib/Jcode/CP932.pm
cgi-bin/lib/HTML/Simpleparse.pm
cgi-bin/lib/Authen/SASL.pm
アップロード・パーミッション設定
libにモジュールを設置できたら、フルパスの確認にうつります。
フルパス名の確認
f_mailer.cgiとf_mailer_admin.cgiの1行目にある#!/usr/bin/perlを確認しましょう。
perlのフルパスは設置するサーバに合わせて修正する必要があります。
ファイル一式をFTPでアップロード
フルパスの確認が終わったら、FTPなどでファイルを一式サーバーにアップします。
アップするディレクトリはサイトの環境に合わせて自由にできます。
※cgiファイルはcgiが使えるディレクトリが決まっている場合はその中に、アスキーモードでUPして下さい。
cgiディレクトリ名は、cgi-binで無くてもOKです。
パーミッション設定
アップロード後に必ず設定するのは、以下のファイル2つです。
f_mailer.cgi(755 or 705)
f_mailre_admin.cgi(755 or 705)
それ以外のファイルやディレクトリはあえてパーミッションを触る必要は無いと思います。
しかしマニュアルには細かくパーミッション設定が記載されているので、上手く動かない場合は確認しながら変更しましょう。
管理画面ログイン
それでは動作確認のため、管理画面のURLを直接入力してみましょう。
WEBサイトにアップしたf_mailer_admin.cgiが、管理画面のURLになります。
管理画面URL
http://○○.com/formmail/f_mailer_admin.cgi
ログインページ
きちんと動作していれば管理画面のログインページが表示されます。
もう一つのf_mailer.cgiを表示させると「直接起動できない」というガイダンスが出ますがこれでOKです。
ログインパスワード
初期のパスワードは「12345」ですので、それを入力しましょう。
このパスワードは後から必ず変更して下さい。12345はマニュアルに公開されているためです。
ログインできない場合
「パスワードが違います」と表示されログインできない場合があります。
その場合はcgi-bin内にある「data/passwd.cgi」を削除して、再度ログインしてみて下さい。
500 Server Error(サーバーエラー)が出る場合
cgiのアドレスを表示させてもエラーが出る場合は、以下の内容が原因の場合があります。
f_mailer.cgiのパーミッションを確認
1行目に指定しているperlへのパス(#/usr/bin/perl)が適切でない
cgiファイルをバイナリモードでアップした
設定データについて
ログインすると上記のような画面が表示され、「サンプル用の設定データ」が1件登録されています。
この設定データの数は増やす事ができ、その設定データごとに複数のメールフォームを操作する事ができる訳です。
例えば「通常のお問い合わせフォーム」「申し込み用フォーム」「採用募集フォーム」など、パターンごとにそれぞれ設定データが必要になります。
設定対象ファイルタブ
では「設定/変更」のリンクをクリックして、設定ページを開きましょう。
かなり量のある設定欄が出てきます。
受信するメールアドレスを設定
まずは項目8番の「(8)管理者に送られるフォーム内容メール」をみて下さい。
ここの送信先アドレス(SENDTO)に、自分が受信するメールアドレスを設定しましょう。
送信元は相手メールが優先
次に送信元アドレスは、送信元となるFromのメールです。同じく自分のメールアドレスを入れておきましょう。
メールフォーム内に「name="EMAIL"」のメールアドレス入力欄の値がある場合は、こちらが優先されます。
相手の入力したメールアドレスからメールが送信される訳です。
最後のエラー送信先についても、自分のメールアドレスにしておいてよいと思います。
設定データの設定名関連
それ以外に0番と1番は、設定データを分類する重要な設定欄となります。
・設定名…サンプル
・システムのタイトル…フォームの送信
入力条件設定ファイルタブ
隣の「入力条件/書き出すフィールドの並び順設定ファイル」のタブを開きましょう。
ここで入力必須の内容や、制限項目・順番などを設定できます。
基本的に必要ない項目欄は、チェックや正規表現が全く入っていない状態にして下さい。
設定を反映させる場合
設定を反映するには、一旦設定ファイル編集フォームタブの方に戻ってから「下記の内容で更新」ボタンを押しましょう。
テスト送信
アップしたテストページf_mailer_form.htmlを開きます。
テストのフォームが開いたら、何も入力せずに一番下の「送信」を押しましょう。
「〇〇を入力してください」などのエラーメッセージが出ればOKです。
CONFIDの連動
f_mailer_form.htmlのソースを開いてみましょう、すると下記のコードがあります。
<input type="hidden" name="CONFID" value="sample">
この値がsampleとなっており、これが管理画面に登録されている設定データのCONFIDの「sample」に連動しています。
設定データごとに個別のCONFIDの値が付いているので、その値を上記の様にhiddenのコードに入れて対象のフォームに設置します。
このコードが入ったフォームに対し、紐づけられた設定データが反映される訳です。
注意する事
フォームの必須内容と、設定データ内の入力必須項目の内容は合わせましょう。
仮に違っていても、設定データ内の入力条件が全てです。
設定データ上の必須項目が優先
例えば設定データの中で、性別(sex)の欄のどこかにチェック、或いは正規表現ルールを入れていたとします。
実際のメールフォーム上に「性別」を選ぶ欄が無くても、内容確認時に「性別が入力されていません」とガイダンスが出ます。
メールフォーム側ではなく、あくまで選択された設定データの入力条件がベースとなる事に注意しましょう。
必須項目以外
必須でない項目については、入力フィールド上の入力データがそのまま反映されますので安心して下さい。
設定データ側の影響も受けません。
nameの値が見出しとなり、valueの値がデータとして格納されます。
メールフォーム側の設定
先に設定データを決定した上で、その内容に合わせてメールフォームの内容を作る事になります。
まずはformタグのactionで、読込先であるf_mailer.cgiを指定する事ですね。
<form action="formmail/f_mailer.cgi" method="POST">
入力制限設定タグの挿入
次にformタグの直下に、以下2つのタグを入れましょう。
<input type="hidden" name="GETCODE" value="文字コード"> <input type="hidden" name="CONFID" value="sample">
上の文字コードタグもそのままコピペして使って下さい。
下のCONFIDの値は、使用する設定データに合わせましょう。
必須のname値は設定データに合わせる
各入力フィールド(inputやselect、textareaなど)は自由ですが、必須入力のname値は設定データの入力条件タブ欄にある項目名にあわせましょう。
設定データにはたくさんの項目がありますが、チェックや正規表現を一切入れてなければ影響しません。
何かしらのチェックを付けたところだけが反映対象になると覚えておいて下さい。
これで一通りForm mailerの導入はできた事になります。