メール送信用CGI

MyFormMail Ver.1.00

概要

ありがちなメール送信CGIです。最低限自分が必要な機能しか実装しておらず、この手の物の中では最も低機能な部類に入ります。

基本的に何のとりえもありませんが、あえて特長を挙げるならば、Perlモジュールを多用しており、比較的短くて可読性の高いソースとなっています。作者は著作権等を一切主張しないので、自分好みのメール送信CGI作成のための足がかりや、学習用にお使いいただけます。

特徴

動作環境

仕様・制限

配布内容

ファイル名 内容
mfmail.cgi スクリプト本体
sample_form.html 送信フォームのサンプル
sample_result.html 送信結果のサンプル
mfmail.html ドキュメント(このファイル)

設置方法

設定の変更

スクリプト本体(mfmail.cgi)の先頭に設定項目があるので、ご自分の環境に合わせて変更してください。なお、ファイルの文字コードはEUC、改行コードはLFです。修正にはこれらを正しく扱えるエディタをご利用ください。

ファイル先頭行

先頭にあるPerlのパス指定を、プロバイダなどの指示に従って書き換えてください。大抵は「#!/usr/local/bin/perl」のままで問題ありませんが、「#!/usr/bin/perl」などの場合もあります。

送信先メールアドレス

メールの送信先――つまり、ご自分のメールアドレスを指定してください。

メールの題名

受け取るメールのSubjectを指定してください。

送信に使用するMTA

Mail::Mailerモジュールに渡す値を設定します。詳しくはMail::Mailerのドキュメントをお読みください。

送信者名、メールアドレスをメールの本文にも含めるかどうか

本スクリプトはフォームの内容からFromヘッダを生成しますが、サーバーあるいはMTAによってはこれが反映されず、Fromが「Users」や「nobody」などに決め打ちとなっている場合があります。この場合はこの設定をON(値に1を設定)することで、メールの本文内にもフォームから入力された名前とメールアドレスを含めます。

送信フォームの作成

普通にフォームを作成し、POSTメソッドでCGIを呼ぶように設定してください。sample_form.htmlがサンプルとなっているので参考にしてください。

フォームの項目はINPUT要素によるテキストボックス、ラジオボタン、チェックボックス、SELECT要素によるメニュー(あるいはリストボックス)、TEXTAREA要素による入力フィールドが設定できます。入力内容は、「Name属性:値」の対としてメールの本文に挿入されます。

name属性は基本的には自由に付けていただいて構いませんが、いくつか特別な意味を持つものがあります。

template

必須項目です。ユーザーに見せるものではないのでtype属性にはhiddenを指定してください。

スクリプトと同じディレクトリにある、「%この項目の内容%.html」という名前のファイルが、送信結果画面のテンプレート(後述)として利用されます。

E-mail

送信者のメールアドレスです。メールヘッダのFrom行に使われます。

Name

送信者名です。メールヘッダのFrom行に使われます。

comment

基本的にはほかの任意設定の項目と同じですが、以下の点が異なります。

長文のコメントなどの入力用に、TEXTAREAで使用することを想定しています。

送信結果ページ用テンプレートの作成

いくつかの特殊なタグが埋めこまれた普通のHTML文書です。sample_result.htmlがサンプルなので参考にしてください。

三つの特殊なタグがあり、これを置いた場所に送信した内容を代入します。それぞれの対応は以下のとおりです。

<TMPL_VAR NAME=FROM> フォームの「E-mail」と「Name」から生成されたFromヘッダ
<TMPL_VAR NAME=BODY> 任意に設定した項目
<TMPL_VAR NAME=COMMENT> フォームの「comment」に入力した内容

BODYは改行はそのまま単なる改行です。PRE要素の内容としてください。COMMENTは改行がBR要素に変換されています。P要素などの内容としてください。

転送・パーミッションの設定

ひととおり設定が終ったら、FTPクライアントなどを利用して、Webサーバーへファイルを転送します。場所はプロバイダなどによりCGIを置くことが許可されている場所なら、どこでも構いません。

ファイルのパーミッションもサーバー次第ですが、メインの実行ファイルであるmfmail.cgiは755(rwxr-xr-x)、そのほかは(多くのサーバーで標準の)644(rw-r--r--)にしておくのが、(最善かどうかは別として)一般的です。

WebサーバーApacheのsuEXEC機能などにより、CGIがその所有者の権限で動作する場合は、CGIの実行ファイルおよびそこから読み書きするファイルは、所有者のみにアクセス権限があれば十分です。この場合は700(rwx------)および600(rw-------)にしておくのが、セキュリティの観点からは最善であり、可能であればぜひそうすることをお勧めします。

実行

送信フォームにアクセスし、項目を入力してsubmitすれば、正しく設定されていればメールが送られてくるはずです。

お約束など

更新履歴

Ver.1.00 2001/07/22(Sun)