PC・ケータイ対応ファイル添付メール & ランキングCGI

Tempuu

フリーソフト

バージョン1
 

こちらのページでは自作CGI「Tempuu」がダウンロードできます。
このCGIは、HP上のフォームで指定されたデータをEメールに添付して指定されたユーザに送信するシステムです。

至らないCGIスクリプトですが、みなさんのお役に立てれば幸いです。

Tempuuの使い道


例:ホームページから、ケータイに壁紙や着メロデータを送信する。

Tempuuの4大特徴


●データをEメールに添付して送信すること。

●送信した回数を集計して、ランキング表示すること。
●データ送信を支持するためのフォームは管理人が自作できること。
●送信できるデータの追加がわりと簡単であること。

Tempuuのしくみ


Tempuuは次の3つのCGIから構成されています。
・tempuu.cgi
(メール送信を処理するCGIです)
・temprank_pc.cgi
(パソコンなどリッチなブラウザ環境用のランキング表示CGIです)
・temprank_k.cgi
(ケータイなどの貧相なブラウザ環境用のランキング表示CGIです)

ごく一般的な流れ
1.管理人が素敵な携帯用壁紙を作った。HP上に展示しフォームを作成。
2.お客さんがそのすてきな壁紙を発見。勢いあまって自分のメアドを記入して送信。
3.tempuu.cgiが起動して指示されたデータをEメールに添付して指示されたメアドに送信。
4.お客さんはきれいな壁紙が届いてとてもうれしい。さっそく壁紙に設定。人生ばら色。

ランキングが見たいときは
temprank_pc.cgi もしくはtemprank_k.cgiをブラウザで開く。

★Tempuuはsendmailが利用できるサーバでないと、役に立ちません。

注意:TempuuはK-DBやLineBK、CBKなどのようなキャリアを判断して最適なHTMLを吐き出す機能はありません。

まずはサンプルを試してみてください。

実際にくだらない壁紙を展示しています。気に入ったものがあったら送信してみてください。ランキングもリアルタイムで更新されます。もし正しく表示されない場合は、下記CGI BBSにご報告お願いします。

PC・ケータイ対応ファイル添付メール & ランキングCGI
Tempuuサンプル (2003/10/29初公開)
現在のバージョンは1です。


ダウンロードは下からできます。

Tempuu
ダウンロード

現在までのDL数: 1351
現在のバージョンは1です。バージョンナンバーは別名保存した数なので機能アップ度とは関係ありません。このページの下に設置方法が説明されています。
 
意見交換の場
CGI BBS

動作確認やバグ、良かった悪かったなどTempuuに関する意見をお寄せください。
設置された方はぜひこちらにご報告ください。
私からの細かいインフォメーションもこちらに書き込んでいます。
報告の際はなるべく詳しくお願いできればと思います。

 

Tempuuの導入

 

とりあえず動くのを確認しよう編

 
1.ダウンロードしたファイルを解凍すると下のようなファイルができます。
Tempuuフォルダ
  ├tempuu.cgi
  ├temprank_pc.cgi
  ├temprank_k.cgi
  ├rank.dat
  ├bo.gif
  ├jcode.pl
  ├mimew.pl
  ├sample.html
  ├manual.html
  ├index.htm
  └data
    └sample.gif

2.3つの〜.cgiというファイルをテキストエディタで開き1行目のPerlのパスを書き換えます。

↓これ
#!/usr/bin/perl
3.このマニュアル以外のファイルを自分のWEBスペースにFTPでアップロードします。
tempuu.cgi--->アスキーモード
temprank_pc.cgi--->アスキーモード
temprank_k.cgi--->アスキーモード
rank.dat--->アスキーモード
bo.gif--->バイナリモード
jcode.pl--->アスキーモード
mimew.pl--->アスキーモード
sample.html--->アスキーモード
index.htm--->アスキーモード
data(←フォルダもね)
data内sample.gif--->バイナリモード
4.下の通りパーミッションを設定します。
〜.cgi--->755
rank.dat--->666
〜.pl--->644
他のファイルはデフォルトで可
5.ブラウザでそれぞれの〜.cgiというファイルにアクセスし、表示を確認します。

tempuu.cgiは「ERROR ○○-CGI by Tempuu」と表示されましたか?
temprank_pc.cgi と temprank_k.cgiは「Tempuuメール送信ランキング」と言うタイトルのページが表示されましたか?

tempuu.cgiがエラーと表示されるのはフォームを介さず、確認のために直接アクセスしたからです。通常は直接アクセスすることはありません。

これで動作確認はできました。 次にシステムの流れを確認できるようにしましょう。

6.sendmailのパスを書き換えます。

tempuu.cgiをエディタで開き、

# 設置するサーバのSendMailのパス
# 解らない場合はこのままでトライ
$sendmail = '/usr/sbin/sendmail';

の/usr/sbin/sendmailの部分をあなたのサーバに合わせて変更します。

7.sample.htmlのフォームのactionの属性にあなたが設置したtempuu.cgiへのパスを設定する。

↓コレ
<form method="post" action="tempuu.cgi">

HTML書類と同じフォルダにCGIファイルが置けるサーバ(つまりデフォルトの状態)なら変更不要です。

8.6と7で編集したファイルをもう一度FTPでサーバにアップロードする。
変更がないならアップロード不要。
9.さあ、テストです。

ブラウザでsample.htmlにアクセスし、フォームにあなたのEメールアドレスを記入し、送信ボタンを押します。
メーラーを確認してください。
sample.gifが添付されたメールが届きましたか?
届いたなら、さらにブラウザで temprank_pc.cgi と temprank_k.cgi にアクセスして、今送信されたsample.gifが1位に入力されてますか?

まとめると、お客さんにはHTMLファイルを公開するわけです。そのページにいろいろなデータが紹介されていて(ひとつでもいいですが)、それぞれにフォームがついている。で、お客さんが気に入ればメアドを記入して送信すれば、そのデータが手に入ると。さらに送信した数は集計されて、temprank_pc.cgi と temprank_k.cgi で公開できると、こういうわけです。ランキング表示CGIはデザインが軽いか重いかだけの違いで、根本的に同じものです。あなたのサイトのタイプに合わせて公開してください。

以上で動作の確認とともに、Tempuuの標準的な流れを理解しました。

サンプルはフォームがひとつでしたが、データがいくつもある場合にもHTMLのフォームを書き換えて増やせばいいだけですから、データが増えるたびにCGI設置か?とおびえる必要はありませんね。HTMLファイルが増えても大丈夫です。

 

コンテンツの設置方法編

 
ダウンロードさせるデータをFTPでアップロードする

Tempuuでは、データ格納フォルダは1つしか設定できません。もちろんデフォルトのままのdataフォルダでもかまいませんが、変更したほうが安全です。フォルダの指定はあとでカスタマイズの仕方で説明します。

フォルダが用意できたら、データをFTPでアップロードしてください。

送信フォームを設置したいHTMLファイルを開き、フォームを追加する

↓コレがフォームの要素すべてです。
<form method="post" action="tempuu.cgi">
<input type="hidden" name="attachfile" value="ファイル名">
<input type="hidden" name="filename" value="データタイトル">
<input type="text" name="mailad">
<input type="submit" value="送信">
</form>

順に説明すると
1.<form〜の部分は、actionがtempuu.cgiへリンクできていればオーケーです。もちろん同じフォルダにない場合はパスも含めて書いてください。methodはpostでもgetでもどちらでもかまいません。
2.2行目の<input〜は不可視属性で、nameをattachfile(変更不可)、valueを送信させたいデータのファイル名にします。ファイル名属性にはディレクトリパスは含まないで、単純にファイル名だけにしてください。パスが含まれているとエラーで送信が停止します。またexeファイルも送信不可です。
3.3行目の<input〜も不可視属性で、nameをfilename(変更不可)、valueをデータタイトルにします。上のものとどう違うの?と思われるかもしれませんが、こちらは企画書なら1ページ目のタイトルだったり、絵や音楽なら作品名ということです。なのでこちらは日本語でもオーケーです。
4.4行目の<input〜はEメールアドレスの入力欄です。nameをmailad(変更不可)とします。メアドは簡単な書式チェック機能を備えています。
5.送信ボタンです。
6.フォームを閉じます。
もちろん<form> 〜</form>の間の要素は順不同です。

フォームが書かれたHTMLファイルをFTPでアップロードして終了
あとはお客さんが送信ボタンをポチッとしてくれるのを待つばかり。送信数の集計も自動で行います。
 

カスタマイズしよう編

 
CGIファイルが3つあって、しかもそれぞれ設定しなくてはいけないというのが面倒で申し訳ありませんが、そういうもんだと思ってください。
tempuu.cgi

# 送信するメールの件名
$mail_sub = "Tempuuメールシステム";

メールのサブジェクトです。

# 設置するサーバのSendMailのパス
# 解らない場合はこのままでトライ
$sendmail = '/usr/sbin/sendmail';

sendmailのパスはそのサーバを管理しているところがインフォメーションしているはずです。これが合ってないとメールは届きませんよ。

# 本文に挿入するテキスト(<<EOT; と EOT の間の行に書くこと)
$comment = <<EOT;
ご利用ありがとうございます。
ご指定のデータを添付してメールいたしました。
EOT

メールの本文です。改行はそのままメールでも改行されます。

# 管理人のメールアドレス
$mymail = '****@***.ne.jp';

メールの送信元を指定します。

# 送信後のページを指定
$end = './index.html';

送信後に表示されるページを指定します。送信フォームがあったページでもいいし、ありがとうというページでもいいし。

# 添付するデータが格納してあるフォルダへのパス(このCGIと同じ階層に散らばっているなら空欄→'')
$dataf = 'data/';

Eメールに添付するデータを格納するフォルダを指定します。データ格納フォルダはこれ1つしか指定できません。同じフォルダにあるなら空欄に。

# ランキングファイルを指定(このCGIファイルからのパスも含む)
$rankdata = './rank.dat';

ランキングを管理するファイルを指定します。別のフォルダにあるならパスも含みます。

# ファイルロック形式 (0=no 1=symlink 2=open)
$lockkey = 2;
# ロックファイル名(このCGIファイルからのパスも含む)
$lockfile = './tempuulock.lock';

ランキングファイルを安全に運用するためのファイルロックです。形式は1が一番堅牢ですが、対応していないサーバも少なくありません。その場合は2にします。0はもちろんロックしないということなので、ランキングファイルが壊れてもあきらめてください。ロックファイル名はこのままでいいと思いますが、同じフォルダに別のCGIが存在する場合、同じ名前にならないようにしましょう。

temprank_pc.cgi

# ファイルの場所を変更した場合は相対パスも含める
# このスクリプトのファイル名
$script = './temprank_pc.cgi';

このスクリプトのファイル名です。ファイル名を変更した場合などに設定します。

# このページのタイトル
$title = 'Tempuuメール送信ランキング';

ランキングページのタイトルを指定してください。

# ランキングファイルを指定(このCGIファイルからのパスも含む)
$rankdata = './rank.dat';

ランキングを管理するファイルを指定します。

# 1ページ当たりの記事表示数
$pagelog = 20;

1ページに何位まで表示するかを指定します。

# 戻るページのURL
$buckurl = '';

戻るページのURLを指定してください。

# タイトルのサイズ
$title_size = '6';
# タイトルの位置(center または left または right)
$title_div = 'left';
# タイトルのカラー
$title_color = '#749FC2';
# タイトルに画像を使う場合はパスと名前を指定
$title_image = '';
# タイトルの下に好きなように文字などを追加できます(タグ可)
$mini_comment = '';

タイトルまわりの設定です。

# フォントの基本サイズ(スタイルシート使用)10ptがデフォルト
$base_size = '10pt';
# フォントの基本カラー(デフォルトはグレイ)
$base_color = '#333333';
# 背景色(全体に適用されます)
$base_bgcolor = '#FFFFFF';
# 背景に画像を使う場合は画像までのパス
$background = '';

本文がらみの設定です。

# 表示していないリンクのカラー
$alinkcolor = '#3A75E2';
# 既に表示したリンクのカラー
$avisitedcolor = '#1F96C9';
# マウスが上にある時のカラー
$ahovercolor = '#F127BF';
# それぞれのリンクに下線をつけるかつけないか
# (つける='underline' つけない='none')
$al_decoration = 'none'; # 表示していないリンク
$av_decoration = 'none'; # 既に表示したリンク
$ah_decoration = 'underline'; # マウスが上にある時のリンク

スタイルシートの設定です。

# このホームページのデザインの幅
$design_width = '620';
# このホームページのデザインの位置(center または left または right)※上の幅が100%以外の場合
$design_div = 'center';
# テーブルの囲みケイの色
$tablelinecoloer = '#333333';
# テーブルの囲みケイの太さ
$tableline = '1px';
# テーブルの囲みケイの種類(実線→solid、点線→dotted)
$tablelinetype = 'solid';
# テーブルの背景色
$tablebgcolor = '#FFFFFF';
# グラフ表示用イメージファイル
$boderimg = 'bo.gif';

テーブルに関する設定です。

temprank_k.cgi

# ファイルの場所を変更した場合は相対パスも含める
# このスクリプトのファイル名
$script = './temprank_k1.cgi';

このスクリプトのファイル名です。ファイル名を変更した場合などに設定します。

# このページのタイトル
$title = 'Tempuuメール送信ランキング';

ランキングページのタイトルを指定してください。

# ランキングファイルを指定(このCGIファイルからのパスも含む)
$rankdata = './rank.dat';

ランキングを管理するファイルを指定します。

# 1ページ当たりの記事表示数
$pagelog = 5;

1ページに何位まで表示するかを指定します。ケータイなど画面や容量が多くない端末のことを考慮して、あまり数を増やさないほうがよいでしょう。

# 戻るページのURL
$buckurl = '';

戻るページのURLを指定してください。

# タイトルのカラー
$title_color = '#749FC2';
# タイトルに画像を使う場合はパスと名前を指定
$title_image = '';
# タイトルの下に好きなように文字などを追加できます(タグ可)
$mini_comment = '';

タイトルまわりの設定です。

# フォントの基本カラー(デフォルトはグレイ)
$base_color = '#333333';
# 背景色(全体に適用されます)
$base_bgcolor = '#FFFFFF';
# 表示していないリンクのカラー
$alinkcolor = '#3A75E2';
# 既に表示したリンクのカラー
$avisitedcolor = '#1F96C9';
# 選択中のカラー
$ahovercolor = '#F127BF';

本文がらみの設定です。

 

著作権・使用上の注意

●このソフトウェア(Tempuu)はkim(木村洋介)が作成しました。
●著作権はkimにあります。
●著作者の許可なく配布・販売することを禁止します。
●Tempuuはフリーソフトです。
●Tempuuを使用して発生したいかなる損害に対しても著作者はその責任を負いません。
●改造は自由ですが、スクリプト内にある著作者情報は削除・変更しないでください。
●perlはversion5以上でないと動かないかも知れません
(未確認)。

 

更新履歴

●バージョン1(03/10/29)
 初公開。

Copyright(c) 2003 kim. All rights reserved.

トップページに戻る