SSブログ

「メールフォーム UTF-8専用」を設置

個人サイトにメールフォームを設置してみた。

フリーのメールフォームCGIは数々あるが、今回導入したのはSYNCKGRAPHICAさんが提供している「メールフォーム UTF-8専用」。導入の決めてになったのは、各種SPAM対策が施されており、付属の入力フォームサンプルの見栄えもよさげな点。入力した郵便番号から住所変換する機能もあり、業務用として使うにもなかなか便利だろう。

ダウンロードしたアーカイブファイル(std60_utf8.zip)を解凍したら、設置作業開始。以下は「CGIをどのディレクトリにも置けるサーバ」の場合の設置例だ。

(1) std6.0_utf8フォルダ内にある、example.htmlを改造して入力フォームを作る。最後に、mail.htmlとでもリネームしておこう。

(2) メール送信完了時に表示させるhtmlファイルを作成。名前はなんでもいいが、thanks.htmlとでもしておく。

(3) http://search.cpan.org/~dankogai/Jcode-2.07/ をダウンロード・解凍し、Jcode.pmとJcodeフォルダ(丸ごと)をmailformフォルダにコピー。ここまでの作業でディレクトリ構成は以下のようになっているはず。
std6.0_utf8/
  +- mail.html
  +- thanks.html
  +- mailform/
       +- Jcode/
       +- postcodes/
       +- check.cgi
       +- Jcode.pm
       +- mailform.css
       +- mailform.js
       +- send.cgi

(4) 使用するサーバのperlパスを確認。shellログインできるサーバなら、which perlとすればパスが表示される。shellが使えない場合はプロバイダ、レンタルサーバ会社に問い合わせよう。ダメモトで次のステップに進んでも可。

(5) 次のファイルの1行目に書かれている「#!/usr/bin/perl」を、(4)で確認したパスに書き換え(行頭の#!を消してはダメ)
mailform/check.cgi
mailform/send.cgi
mailform/postcodes/get.cgi

(6) (1)、(2)で作ったhtmlファイルと、mailformフォルダ(丸ごと)をサーバにアップロード。以下のファイルのパーミッション(属性)を755に変更する。
mailform/check.cgi
mailform/send.cgi
mailform/postcodes/get.cgi

(7) サーバに上げたcheck.cgiをWebブラウザで開き、表示されるsendmailのパスをメモ。エラーが出た場合はサーバ内のperlのありかが正しくないか、パーミッション設定がミスっているか、Jcodeがないかのいずれか(だと思う)。(4)に戻って再点検。

(8) mailform/send.cgiを開き、「一般的な設定」内のパラメータをカスタマイズ。以下、最低限やらなきゃいけないこと。
・$conf{'debug'} = 1 にする
・$conf{'sendmail'} = に自分のメアドを書く
・$conf{'thanks'} = に(2)で作成したファイルのURLを書く
・$conf{'res_body'} = <<'__res_body_eof__';の次行から__res_body_eof__に、送信者に自動返信されるメール本文を記述。は消さずに残しておくこと(この部分に相手が書いたメール内容が挿入される)。 (9) カスタマイズした send.cgi をサーバにアップロード(上書き)したあと、mail.htmlをWebブラウザで開き、動作確認。 設置作業はわりと簡単だが、mailform/postcodes/get.cgiのパーミッション設定が鬼門。これを設定し忘れると、フォームの「郵便番号→住所変換」ボタンを押しても変換してくれない(15分ほど悩んでしまったヨ)(笑)。 なお、自動返信メールのFrom欄には、(8)で設定したメアドが用いられる。気になる場合はフリーメールのアカウントを取得して使うとよいだろう。hotmailだと届いたメールがスパム扱いされるので、gmailがおすすめ。

Sponsored Link


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。