• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ホームページビルダーで作成したフォームの回答をCGIによってメール受信するには?)

ホームページビルダーでフォームの回答をメール受信する方法

このQ&Aのポイント
  • ホームページビルダーで作成したフォームの回答をCGIを使ってメールで受信する方法について質問しています。サーバー管理者に相談したところ、CGIの設置には責任を持たないとの回答を得たそうです。具体的な方法や注意点について教えてほしいとのことです。
  • 具体的な手順について質問しています。まず、フォームのタグにあるaction=の部分をcgi-bin/...というパスに変更する必要があると知りましたが、具体的にどのようなパスを指定すれば良いのか教えてほしいとのことです。また、アンケート結果を指定するメールに送信するCGIファイルの作成方法についても教えてほしいとのことです。
  • CGIファイルの設置場所について質問しています。自分のディレクトリはhttp://www....co.jp/intra/.../.../以下となっており、この場合、どこにcgi-binファイルを置けば良いのか教えてほしいとのことです。また、パーミッションやその他注意点についても教えてほしいとのことです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#56882
noname#56882
回答No.3

#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内の細かな設定をすればいいと思いますよ。

kitagawautamaro
質問者

お礼

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

kitagawautamaro
質問者

補足

昨日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」と会社のメールアドレスの@以降の部分と置き換えてみましたが同様にダメでした。 以上の措置を試してみましたが、不足などはございますでしょうか?あるいは余計なことをしてしまっているのでしょうか? 皆さまのアドバイスのお陰で成功に大分近づいていると思うのですが何処かミスがあるようです。 どうぞよろしくお願いいたします。

すると、全ての回答が全文表示されます。

その他の回答 (5)

noname#56882
noname#56882
回答No.6

新たに「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 についてはあまり色々と設定せずにとりあえずそのままでやってみてはどうでしょうか。

すると、全ての回答が全文表示されます。
  • nak777r
  • ベストアンサー率36% (49/136)
回答No.5

失礼しました イントラネットサーバーがあって、Perlが使えるようですね で、管理者が、[#!/usr/local/bin/perl]の部分はそのままでいい と言っている事から、おそらく、サーバーは IIS だと思います とすると、逆に sendmail 自体設定されていないかも知れません メールが無くても、フォームから投稿できるCGIとかも ありますので、そちらを検討されたほうがいいかもしれません たとえば、こんなの http://cgikon.com/search/detail.php3?cgi_id=388 (フリー CGI アンケート、投稿のみ 等で検索して見つけたサイト)

kitagawautamaro
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • nak777r
  • ベストアンサー率36% (49/136)
回答No.4

質問を見る限り、イントラネットサーバーによる運用は行っていないのではない サーバーは、単なるファイルサーバーなのではないかと推測します となると、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はこの部分を見ない)

すると、全ての回答が全文表示されます。
noname#56882
noname#56882
回答No.2

ご質問内容とアドバイス内容が前後しますがお許しください。 ■まずは「#!/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ファイルの必要な部分を変更する、という 形が理想かなとは思いますが。大変長くなりましてすみません。

kitagawautamaro
質問者

お礼

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)は具体的にどういった作業になるのでしょうか? 質問攻めで申し訳ございませんが、可能な範囲で結構ですのでどうかよろしくお願いします。

すると、全ての回答が全文表示されます。
回答No.1

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

kitagawautamaro
質問者

補足

はい、素人です。分かりにくくて恐縮です。 昨日の質問文での繰り返しになりますが、過去に社内のイントラネット上でwebアンケートを実施したのですが、HPBで作成できるアンケートの場合、送信ボタンを押すと送信者のメールソフトが起動して回答を送る方式になります。しかし、各社員のOutlookの仕様や設定如何によっては、正しく受け取ることができませんでした(そういう現象があるそうです)。 CGIを利用すれば、送信者のメールソフトを介することなく、結果をメール受信出来るとのことです。昨日のshippo様の回答を引用しますと、「HTMLでFORMタグを使用した文をCGIを利用してメール送信することは可能ですよ。」とあります。 レンタルサーバーではなく、今後の拡張も考え、会社のサーバー上で実施したいと考えています。 早速の参考意見をありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A