プロが教えるわが家の防犯対策術!

昨日、shippo様に素人がCGIを設置するのは結構大変だから会社のサーバー管理者に尋ねてみたら?というアドバイスをいただき、本日早速尋ねたのですが、よく分かっていないのか、たらいまわしにされた上、CGIを設置するのは構いませんが、問題が起きても責任は取れませんし、一切サポートできません、と言われてしまいました。
*昨日の質問:http://oshiete1.goo.ne.jp/qa3664511.html

皆さま、どうぞよろしくお願いします。
ホームページビルダー(HPB)で作成したアンケートフォームの回答をCGIによってメール受信するにはどうしたらよいでしょうか?

■作成したフォームをどのようにいじればよいのでしょうか?
HPBで作られたフォームのタグを添付いたしますと:
<FORM name="HPB_ELQ_QUESTION" action="mailto:私のメールアドレス?Subject=社員アンケート" enctype="text/plain" onsubmit="return HpbELQCheck();" onreset="HpbELQReset();" method="POST">
となっておりますが、このaction=の部分にcgi-bin/……というパスに置き換えればよさそうだということが分かったのですが、実際にはそれだけでよいのでしょうか?そしてどのようなパスを入力すればよいのでしょうか?

■アンケート結果を指定するメールに送信するCGIはどのように作成すればよいのでしょうか?
昨日shippo様に、http://www.kent-web.com/data/postmail.html を参考に、というアドバイスをいただきました。ここからDLしたCGIファイルをテキストエディタで開き、CGIスクリプトの1行目を、サーバー管理者が指定するパスを入力すればよいのだろうというところまで分かったのですが、それでよいのでしょうか?サーバー管理者は特にいじっていないからデフォルトのままでよいというような言い方をしていましたので、#!/usr/local/bin/perl のままでよいのでしょうか。
また、他にいじる必要は無いのでしょうか?少なくとも私のメールアドレスをどこかに入力しないといけないと思うのですが、何処に入力すればよいのでしょうか?

■以下のサイトにて、CGIファイルはホームディレクトリに作成したcgi-binというフォルダに入れてwebサーバーにアップするという説明がありました。http://web-up.cside.biz/cgi_3.shtml
私に割り当てられているディレクトリ(?)は、http://www.……co.jp/intra/……/……/以下となります。(すみません、訳の分からない説明だと思いますが…。) つまり、最後のディレクトリ以下でのみ、私が好きにディレクトリを作成してwebサイトを作成できるということです。この場合、どのディレクトリにcgi-binファイルを入れればよいのでしょうか?そのディレクトリに他のファイルが入っていても問題ありませんでしょうか?

■これらを行えばCGIを介したアンケート回収が可能になりますでしょうか?
パーミッションについては、管理者は好きにしていいよというような具合でしたので「755」でよいでしょうか?
他、必要なことがありますでしょうか?また、注意すべき点なども併せてご教授いただけますと幸いです。

すみません、大変長くなりましたが、どうぞよろしくお願いいたします。

A 回答 (6件)

#2です。


●「#!/usr/local/bin/perl」については管理者の方が「そのままでいい」と
仰っているのでしたら、そのままでいいのではないでしょうか。
「/usr/lib/sendmail」についてもこのままで動くかもしれません…。
ここは管理者の方を信じるしかないですね。

●$mailto = "xxx@xxx.xxx";はひとつしか設定する場所はありませんのでそこだけでいいですよ。

●/intra/aaa/bbb/ccc/enquete.htmlで作られたのでしたら「ccc」ディレクトリの中に
入れてしまうといいと思います。(postmail.cgi、lib /ディレクトリその他)

●<FORM name="HPB_ELQ_QUESTION" action="mailto:私のメールアドレス?Subject=以下略>
にしてしまうとcgiスクリプトが動きませんので参考に書かれている通りになさるといいです。
<form action="./postmail.cgi" method="POST">のままで変更しない、ということです。

●パーミッションについてはKENTさんのサイトを参考にしてください。

●必要な部分のみ触る、というのはcgiファイルやhtmlファイルを不必要に触ってしまうと
エラーが出る場合があるからです。特にホームページビルダーで作成されたhtmlファイルだと
cgiで送信しようとするとエラーが出ることがあるそうです。
なので、KENTさんの所からダウンロードしたcgiスクリプト丸ごとアップされるといいということです。
(htmlファイルも含みます。tmpl /の中もアップしないとエラーが出ます)
http://~~/intra/aaa/bbb/ccc/postmail.cgi?mode=checkでエラーが出なかったら
「enquete.html」をアップしてそれで動くかどうかの確認をしてみるといいのではないでしょうか。
あと、postmail.cgi内の細かな設定をすればいいと思いますよ。

この回答への補足

昨日NymphLuna様にお教えいただいたことを参考にCGIスクリプトの変更を試してみましたが、簡易チェックをしたところ「ページが見つかりません」と表示されてしまいました。
どなたかアドバイスをいただけましたら幸いです。
以下、私が取った措置についてご説明させていただきます。

■KENTさんのサイトからDLしたpostmailを利用しました。
■(1)1行目のperlのパス名と(2)190行目のsendmailパスの変更について:
(1)については「#!/usr/local/bin/perl」と「#!/usr/bin/perl」、(2)については「"/usr/lib/sendmail";」と「"/usr/sbin/sendmail";」の2×2の総当りで試しました。
((1)(2)それぞれ、通常これらの2通りが考えられると他のサイトから解釈したためです)
■107行目の$mailto =について自分のメールアドレスを入力しました。
■変更したCGIファイルはDLしたままのpostmailフォルダに入れたまま、他のファイルについて変更することなく、アンケートフォーム(enquete.html)が存在するディレクトリにUPしました。
/aaa/bbb/ccc/enquete.htmlに対して/aaa/bbb/ccc/postmail/postmail.cgiの関係です。
■変更後webサーバーにUPし、ブラウザにhttp://~/intra/aaa/bbb/ccc/postmail.cgi?mode=checkを入力して簡易チェックしましたが、「ページが見つかりません」と表示されてしまいました。

さらに、198行目のSMTPサーバーと209行目のPOP3サーバーの項で、
$server = "mail.server.xxx.jp";、 $pop3sv = 'mail.server.xxx.jp'; と記入を促すような書き方をしてあったので、「xxx.jp」の部分を「aaa.co.jp」と会社のメールアドレスの@以降の部分と置き換えてみましたが同様にダメでした。

以上の措置を試してみましたが、不足などはございますでしょうか?あるいは余計なことをしてしまっているのでしょうか?
皆さまのアドバイスのお陰で成功に大分近づいていると思うのですが何処かミスがあるようです。

どうぞよろしくお願いいたします。

補足日時:2008/01/11 11:27
    • good
    • 0
この回答へのお礼

NymphLuna様、ご丁寧にありがとうございました。
教えていただいた情報を頼りに明日会社でトライしてみることにします。
会社のサーバー管理者がNymphLuna様のような方であったらどんなに良かったことかと切に願った次第です。
ありがとうございました。

お礼日時:2008/01/10 21:28

新たに「ccc」ディレクトリの中に「postmail」ディレクトリを作られているので


http://~/intra/aaa/bbb/ccc/postmail.cgi?mode=check
としてはcgiのページが見つからなくなってしまいます。ですので

http://~/intra/aaa/bbb/ccc/postmail/postmail.cgi?mode=check

でチェックしてみてください。

$server = "mail.server.xx.jp";
$pop3sv = 'mail.server.xx.jp';
については、その上の方に
「##【注】sendmail送信の方は設定はここまでで終了。これより下は設定不要です。」
と書いてあります通り、
$send_type = 1; ←ここを2にしない限り194行以下は触る必要はありません。

#!/usr/local/bin/perl
/usr/lib/sendmail
についてはあまり色々と設定せずにとりあえずそのままでやってみてはどうでしょうか。
    • good
    • 0

失礼しました



イントラネットサーバーがあって、Perlが使えるようですね
で、管理者が、[#!/usr/local/bin/perl]の部分はそのままでいい
と言っている事から、おそらく、サーバーは IIS だと思います

とすると、逆に sendmail 自体設定されていないかも知れません

メールが無くても、フォームから投稿できるCGIとかも
ありますので、そちらを検討されたほうがいいかもしれません

たとえば、こんなの
http://cgikon.com/search/detail.php3?cgi_id=388
(フリー CGI アンケート、投稿のみ 等で検索して見つけたサイト)
    • good
    • 0
この回答へのお礼

nak777r様、また違った視点からのアドバイスをありがとうございました。
リンク先ページを見ますと、「最新データをFTPツールでダウンロード」とありますので、私の解釈では、サーバー上にアンケート結果のデータがTSVというファイル形式で蓄積されていくわけですね。これを逐一メールで受取るのではなくFTPからDLするということですね。
なるほど、明日行き詰ったら試してみたいと思います。
ありがとうございました。

お礼日時:2008/01/10 21:37

質問を見る限り、イントラネットサーバーによる運用は行っていないのではない


サーバーは、単なるファイルサーバーなのではないかと推測します
となると、webサーバーの構築と、Perl のインストールから始まると判断します

まず、会社に、自分専用のパソコンはありますか?
もしあるのであれば、まず自分専用のパソコンで環境構築してみる方がよいかと思います。

参考は、WindowsXP で IISとPerl をセットアップする例です
http://mikeneko.creator.club.ne.jp/~lab/perl/iis/


ちなみに文中に出てくる
http://localhost/
の localhost の部分は自分自身を指す物ですので、
他のパソコンから見る場合は、 IIS をインストールしたサーバーのIPアドレスになります

IPアドレスがわからない場合、
・ファイル名を指定して実行
・cmd と入力して [OK]
・コマンドプロンプトが表示されるので、 IPCONFIG と入力しリターン
・IP Address と記述されている所に書いてある、ピリオドで区切られた4つの数字
この数字を、localhost 部分に置き換えると他のパソコンから見る事ができます。

IISサーバーにした場合、CGIの
#usr/local/bin/perl
の部分の指定は特に設定を変更しなくてもよいです
(IISはこの部分を見ない)
    • good
    • 0

ご質問内容とアドバイス内容が前後しますがお許しください。



■まずは「#!/usr/local/bin/perl」ですが、これはサーバー管理者の方に
聞いていただかないことにはわからないです。
「#!/usr/bin/perl」の場合もあれば「#!/usr/local/bin/perl」の場合もあるからです。
それと「sendmail」パスも設定する必要があります。
KENTさんの例ですと「$sendmail = "/usr/lib/sendmail";」の部分に当たります。
これも管理者の方に聞いていただかないことには…。

メールアドレスについては
$mailto = "xxx@xxx.xxx";
の部分にご自身のメールアドレスを記入しなくてはなりません。

■cgi-binというディレクトリですが、設置しなくてはならない、と決められているものではありません。
サーバー上で特に設置する必要が無い場合、好きな名前のディレクトリを作っても可能な場合もあります。
ただ判りやすくするために「cgi-bin」を作ってもいいかと思います。
http://www.……co.jp/intra/……/……/とのことですが
とりあえず「/intra/aaa/bbb/」とさせていただきますね。
/intra/aaa/bbb/以下に「cgi-bin」ディレクトリを作成するし
CGI関係のものだけを入れるようにしておいた方が後々わかりやすいと思いますよ。

■<FORM name="HPB_ELQ_QUESTION" action="mailto:私のメールアドレス?Subject=社員アンケート"以下略>
についてはKENTさんの設置例のソースをご覧になると良いと思います。
http://www.kent-web.com/data/postmail/index.html
この中に
<form action="./postmail.cgi" method="POST">
がありますので、書かれたhtmlファイルとcgiファイルが同じ場所にあればこのままで構いません。
最後は必ず</form>で閉じてください。

■パーミッションについては、KENTさんのものを使用なさるのであれば
とりあえず指定されているものにしてみてはどうでしょうか。

配布スクリプトでいただいたものの中の必要な部分【だけ】を触って
(#!/usr/local/bin/perl、$mailto = "xxx@xxx.xxx";、$sendmail = "/usr/lib/sendmail";)
指示通りにアップロードし、動作確認をしてみてからhtmlファイルの必要な部分を変更する、という
形が理想かなとは思いますが。大変長くなりましてすみません。
    • good
    • 0
この回答へのお礼

NymphLuna様、早速のご回答をありがとうございました。
大変恐縮ですが、以下の点について補足をいただけましたら幸いです。

●「#!/usr/local/bin/perl」パスについて
管理者はどうやらよく分かっていないようで、管理者に対して「何処を見ればこの部分が分かる」といえばよいのでしょうか。情けない話ですが、管理者は「とにかくそのままでよい」の一点張りで、こちらも「あ、そうですか」と引き下がるほかありませんでしたので。

●「sendmail」パスについて
これはKENTさんの190行目のものでしょうか?ここについても、管理者に何処を参照すればよいのか指示できる情報をいただけますでしょうか?

●メールアドレスについて
107行目の$mailto = "xxx@xxx.xxx";のみでよいでしょうか?495行目などはいじらなくても宜しいでしょうか?

●cgi-binディレクトリについて
例えば、アンケートページのURLが……/intra/aaa/bbb/ccc/enquete.htmlの場合、cgi-binファイルは何処に作成するのが妥当なのでしょうか?この場合、enquete.htmlが入っているcccフォルダに入れておくのがよいのでしょうか?

●フォームタグについて
「書かれたhtmlファイルとcgiファイルが同じ」というのは、上記のcccフォルダに両方とも入っているということと同義であるとおもいますが、この場合、ご紹介頂いた<form action="./postmail.cgi" method="POST">を<FORM name="HPB_ELQ_QUESTION" action="mailto:私のメールアドレス?Subject=社員アンケート"以下略>に対して、どのように適用すればよいのでしょうか?

●パーミッションについて
「KENTさんのものを使用なさるのであればとりあえず指定されているものにしてみてはどうでしょうか。」これは、「配布スクリプトでいただいたものの中の必要な部分【だけ】を触って……」を意味しているのでしょうか?
問題ないようでしたら、KENTさんのものを利用させていただくつもりですが、(1)指示通りにアップロード、(2)動作確認をしてみてからhtmlファイルの必要な部分を変更する、の(1)(2)は具体的にどういった作業になるのでしょうか?

質問攻めで申し訳ございませんが、可能な範囲で結構ですのでどうかよろしくお願いします。

お礼日時:2008/01/10 18:33

回答になっておらずまことに恐縮ですがメールソフトを介さずにアンケートを行えるCGIとは何のことでしょうか?あまり詳しくないですが、そういうものはきいたことがないので教えていただけたらありがたいです。


メールソフトを介さないでアンケートをするのは・・・私が知っているのはFC2というレンタルサーバーで、登録すると使えるのですが。http://form.fc2.com/
(たぶんほかのところにもそういうものはあるでしょうが私が利用しているもので)
質問と話がずれていて申し訳ありません。

この回答への補足

はい、素人です。分かりにくくて恐縮です。
昨日の質問文での繰り返しになりますが、過去に社内のイントラネット上でwebアンケートを実施したのですが、HPBで作成できるアンケートの場合、送信ボタンを押すと送信者のメールソフトが起動して回答を送る方式になります。しかし、各社員のOutlookの仕様や設定如何によっては、正しく受け取ることができませんでした(そういう現象があるそうです)。

CGIを利用すれば、送信者のメールソフトを介することなく、結果をメール受信出来るとのことです。昨日のshippo様の回答を引用しますと、「HTMLでFORMタグを使用した文をCGIを利用してメール送信することは可能ですよ。」とあります。

レンタルサーバーではなく、今後の拡張も考え、会社のサーバー上で実施したいと考えています。

早速の参考意見をありがとうございました。

補足日時:2008/01/10 17:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!