ありがちなメール送信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を指定してください。
Mail::Mailerモジュールに渡す値を設定します。詳しくはMail::Mailerのドキュメントをお読みください。
本スクリプトはフォームの内容からFromヘッダを生成しますが、サーバーあるいはMTAによってはこれが反映されず、Fromが「Users」や「nobody」などに決め打ちとなっている場合があります。この場合はこの設定をON(値に1を設定)することで、メールの本文内にもフォームから入力された名前とメールアドレスを含めます。
普通にフォームを作成し、POSTメソッドでCGIを呼ぶように設定してください。sample_form.htmlがサンプルとなっているので参考にしてください。
フォームの項目はINPUT要素によるテキストボックス、ラジオボタン、チェックボックス、SELECT要素によるメニュー(あるいはリストボックス)、TEXTAREA要素による入力フィールドが設定できます。入力内容は、「Name属性:値」の対としてメールの本文に挿入されます。
name属性は基本的には自由に付けていただいて構いませんが、いくつか特別な意味を持つものがあります。
必須項目です。ユーザーに見せるものではないのでtype属性にはhiddenを指定してください。
スクリプトと同じディレクトリにある、「%この項目の内容%.html」という名前のファイルが、送信結果画面のテンプレート(後述)として利用されます。
送信者のメールアドレスです。メールヘッダのFrom行に使われます。
送信者名です。メールヘッダのFrom行に使われます。
基本的にはほかの任意設定の項目と同じですが、以下の点が異なります。
長文のコメントなどの入力用に、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すれば、正しく設定されていればメールが送られてくるはずです。