プロが教える店舗&オフィスのセキュリティ対策術

メールフォームの設定で困っています。ウィーバーで作ったフォームで訪問者が送信ボタンをクリックするとその内容が指定のメールアドレスに届くようにしたくてpostmailを入手しました。書籍に書かれている通りに編集しメールフォームのhtmlファイルのアクションに指定しました。確認作業をしてみると送信ボタンを押すとpostmail cgiのコード画面が表示されてしまいます。レンタルサーバーを使用していますが、そちらのサーバーの仕様を調べperlパス、sendmailパスを入力しています。パソコンはマックです。ネットでも色々検索してみたのですが初歩的すぎるのかそこまで詳しくは書かれていずこちらで質問させて頂きました。どなたかお教え頂けたらありがたいです。よろしくお願い致します。

A 回答 (9件)

> メールフォームの送信ボタンを押した後、入力した内容の確認画面に切り替わり、



ということは入力フォームから確認画面までのプロセスの動作確認はOKなわけですね。

> [上記内容で送信]というボタンを押すとエラー画面で
> Not Found
> The requested URL /tmpl/postmail.cgi was not found on this server.
> と表示されます。サーバにないって出てくるので、FAQにある通り、サーバがCGIファイルだと認識していないのだと思います。

いえ、このメッセージは「/tmpl/postmail.cgiがサーバ上にない」という意味ですので、文字通り確認画面からのpostmail.cgiの参照先パスが正しくないという事になります。実際、ディレクトリ構成例からすると"postmail.cgi"の場所は"/postmail/postmail.cgi"になる筈ですが、上記のエラーメッセージによれば "/tmpl/postmail.cgi"、つまり"tmpl"ディレクトリ下に"postmail.cgi"がある、という様に認識されています。多分、どこかでパスの設定を間違っているか、ファイルの置き場所が正しくないかのいずれかの状態になっていると思われます。

再度、パスとディレクトリ構成を確認されてみては。
    • good
    • 0
この回答へのお礼

だんだん近づいてきた感じがしてます、ありがとうございます。
置き場所が悪いか、パスの設定が間違ってるかですねたぶん!
確認してみます。

お礼日時:2008/07/07 10:09

追記です。


PostMailの配布元であるKENT-WEBさんのサイトのFAQは読まれましたか?

【FAQ 7:ダウンロード状態となります(又はソース表示されてしまいます)】
http://www.kent-web.com/support/faq/faq1-2.html#7

ANo.5、ANo.7のアドバイスを実行された上で上記も参考にされては。

なお、postmail.cgiのパーミッションに関しては配布元サイトの解説にて、「755 or 705」(一般サーバ上)と記載されております。
http://www.kent-web.com/data/postmail.html
    • good
    • 0
この回答へのお礼

このFAQは読んでいませんでした。ありがとうございます。
メールフォームの送信ボタンを押した後、入力した内容の確認画面に切り替わり、[上記内容で送信]というボタンを押すとエラー画面で
Not Found
The requested URL /tmpl/postmail.cgi was not found on this server.
と表示されます。サーバにないって出てくるので、FAQにある通り、サーバがCGIファイルだと認識していないのだと思います。レンタルサーバに問い合わせた方がいいと思い、昨日問い合わせフォームから質問を送ってあるので返事待ちなのですが、もう少しFAQを詳しく読んでみて試せる事がないか考えてみます。ありがとうございます!
postmailフォルダはcgi内で下記の内容が記載されてあったので、index.htmlの入っているフォルダの中に入れてあります。場所に問題がないのかも不安なのですが。
【ディレクトリ構成例】

public_html / index.html (トップページ)
|
+-- postmail / postmail.html
| postmail.cgi [705]
|
+-- lib / jcode.pl [604]
| io-socket.pl [604]
| mimew.pl [604] ... 任意
|
+-- data / log.cgi [606]
|
+-- tmpl / body.txt
conf.html
thx.html
err1.html
err2.html

お礼日時:2008/07/05 11:19

No2 です。



まず、cgi の実行関しては、レンタルサーバの説明で、No5 で回答された内容しか記述無いので有れば、設置は何処でも問題ないと判断出来ます。

次に気になるのが

>FTPエラーが発生しました。リモートフォルダ/public_htmlを開く事が出来ません。アクセスが拒否されました。ファイルが存在しないか権限の問題が考えられます。とメッセージが出たので/だけにしたら繋がった為ホストディレクトリは/のみにしてあります。

の部分です。
基本的に、cgi に限らす公開する html ファイル1式は、サーバ側に、Public_html ディレクトリ(フォルダ)が有れば、Public_html ディレクトリに公開する事になりますが、間違い、問題は有りませんか?
もし、Public_html ディレクトリに公開出来ていなければ。


始めの質問に有った
>確認作業をしてみると送信ボタンを押すとpostmail cgiのコード画面が表示されてしまいます。

と矛盾すると思います。
上記の状態は、サーバにファイルをアップロードし、フォームページを開き、送信ボタンを押した状態と判断するので有れば、フォーム用 html ファイルや cgi ファイルは、Public_html ディレクトリ公開されていると思います。

ご確認ください。
    • good
    • 0
この回答へのお礼

すみません、色々試しながらやってたので説明がおかしくなってしまって。
メールフォームから送信ボタンを押すと確認画面に切り替わるのでcgiを読み込んでる事になると思っていたのですが、上記内容で送信というボタンを押すとサーバにないというエラーが出てきてまた悩んでいます。
みなさんのアドバイスを読み返してがんばってみます。
ありがとうございます。

お礼日時:2008/07/05 11:28

素朴な疑問です。



>| postmail.cgi [705]

何で、パーミッションが 705 なんですか??
パーミッションを 755 にする事は出来ないでしょうか。
ご確認ください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。購入した書籍を元に挑戦しているのですが、その本にpostmail.cgiは705、jcode.plは604と出ているのでその通りに…。(汗)
755にしてみます!

お礼日時:2008/07/04 09:52

hunny-beat 様は、まずレンタルサーバ選びで間違っているとかも知れません。



今回の確認点はまず、レンタルサーバのマニュアルを熟読する事です。マニュアルが無いようなレンタルサーバなら、サポートに電話して、cgi の実行環境に関して、どのような制限があるか確認する事をお勧めします。

また。

>出来れば自分で作ったレイアウト、デザインのフォームを使用したいと考えています。

との事ですが、レンタルサーバ次第では、cgi はレンタルサーバ側で用意されており、項目等を含め自由に設定、デザイン出来るレンタルサーバも有ります。始めにレンタルサーバで何が出来るのか、確認して置く事をお勧めします。
    • good
    • 0
この回答へのお礼

レンタルサーバの方には、cgiに関して書かれているのが、
CGIパスPerl: /usr/bin/perl, /usr/local/bin/perl, /usr/sbin/perl
sendmail: /usr/sbin/sendmail
sendmailが正常に動作しない場合は、sendmail: /usr/sbin/sendmail -t をお試しください。
とあり制限うんぬんが見当たらないのですがもう一度じっくり熟読してみて出てないようであれば電話で聞いてみます。くじけそうになるとここを頼りにしてしまうのですが何度も親切に回答下さりありがとうございました。がんばってもう少し自分なりに理解をしようと思います。

お礼日時:2008/07/04 10:08

> postmailフォルダの置き場所なのですが、下記の構成を見てpublic_html / index.htmlの階層下に置くという事でホームページ作成フォルダの中にpostmailフォルダを入れるという事でしょうか?



いやだからですね、postmail.cgiの事を云々する前に、私にしろ他の回答者様にしろアドバイスしていることは、質問者様の使用しているレンタル・サーバのプランにおけるCGIに関するサービス内容がどの様になっているかを先ずは確認して下さい、という事なんですが…。
先程例としてあげた様に、ホスティング・サービスの内容に依っては任意のCGIの使用が禁止されていたり、そうでなくてもCGIを実行できるディレクトリやルールが決まっていたりしますので、質問者様のそういったWebサーバ環境が明らかにならない限り、第三者には答えようがないのだという事をよくご理解下さい。

> サブディレクトリを作るとはどのような事を指すのかなど、

いえ今回問題にしているのは「サブディレクトリを作る」云々ではなく、質問者様の使用されているホスティング・サービスのCGIの実行環境がどうなっているのか、という事です。public_html以下でしたら通常のサブディレクトリは自由に作れる筈ですし。多分先程の例の2番目あたりを混乱して受け止められているのだろうとは思いますが…。

> レンタルしているサーバーのホームページにはその辺が詳しく出ていなくて

「サブディレクトリの作り方」とかは出てないでしょうね、ご自分のローカル環境上で作るのと何ら変わりはないので。
しかし、CGIの実行環境については必ず出ています。使えるか・使えないか、使えるのであればどの様な約束事があるのか、という事は必ず。
ご自分の契約している「プラン」の内容を確認して下さい。そこにCGIが実行できるかできないか書いてある筈です。更に、契約者のアカウントでログインできるユーザガイド(管理者ページ)がある筈ですので、そちらのCGI使用に関する説明を読んで下さい。

> 基本的な細かい事が解らなすぎて何がなんだか状態です。

「基本的な細かい事」を先ず理解しなくては、何もできません。任意のCGIを実行したいのであれば、最低限上記の事は理解しておかなければ無理です。運用・カスタマイズはそれがクリアになったその後の段階の話です。
    • good
    • 0

> ダウンロードしたファイルが小文字の拡張子cgiだったので、おっしゃる通りに大文字に書き換えてみましたが変化なしです。



ANo.1の回答者様のご指摘を間違って解釈されておられます。大文字にしろとは仰っていません。拡張子はオリジナルの小文字".cgi"のままで良いです。

> >ファイルを設置したディレクトリは CGI が許可されたディレクトリか確認
> これがよくわからないのでどのように確認したらいいのでしょうか?

ホスティング・サービスのサービス内容に依りますが、CGIが使える(CGIファイルを置く)ディレクトリが予め決められていたり、CGIの実行に関して色々と制限があったりします。

【例】
・(ホスティング・サービス側で予め設置済みの)/hogehoge/cgi-bin/ のディレクトリに置くこと("cgi-bin"という名称は一例。そうではない場合もあり)。
・/hogehoge/の下に更に任意にサブディレクトリを作ってそこで個別にCGIを実行する事も可能だが、そのディレクトリ名は必ず"cgi-bin"(上記と同様)にすること。例えば、/hogehoge/foo/cgi-bin/ 等。
・ホスティング・サービスが予め用意したCGIのみ使用可。ユーザの任意のCGIの実行は許可しない。

ユーザガイドを読めば必ずそういった事は書いてあります。先ずは再度それをよく読み、ご自分の環境がどの様になっているかを確認される事をお奨めします。
    • good
    • 0
この回答へのお礼

ありがとうございます、間違って解釈していたようで…。
cgi-binフォルダが書籍にも出ていてこのフォルダが解らなくてなんだろうと思っていました。レンタルサーバーのディレクトリ構造に/public_htmlとあるのですが、サイト定義のホストディレクトリの所に打ち込むのかと思って入力したのですが、
FTPエラーが発生しました。リモートフォルダ/public_htmlを開く事が出来ません。アクセスが拒否されました。ファイルが存在しないか権限の問題が考えられます。とメッセージが出たので/だけにしたら繋がった為ホストディレクトリは/のみにしてあります。
postmailフォルダの置き場所なのですが、下記の構成を見てpublic_html / index.htmlの階層下に置くという事でホームページ作成フォルダの中にpostmailフォルダを入れるという事でしょうか?
基本的な細かい事が解らなすぎて何がなんだか状態です。サブディレクトリを作るとはどのような事を指すのかなど、レンタルしているサーバーのホームページにはその辺が詳しく出ていなくてどこで調べたらいいのか途方に暮れています…。すみません、回答して下さってるのに理解出来ていないみたいで…。

【ディレクトリ構成例】

public_html / index.html (トップページ)
|
+-- postmail / postmail.html
| postmail.cgi [705]
|
+-- lib / jcode.pl [604]
| io-socket.pl [604]
| mimew.pl [604] ... 任意
|
+-- data / log.cgi [606]
|
+-- tmpl / body.txt
conf.html
thx.html
err1.html
err2.html

お礼日時:2008/07/03 18:08

No1 さんに補足、後はパーミションも確認してください。

またファイルを設置したディレクトリは CGI が許可されたディレクトリかもご確認ください。

また、フォームCGI に関しては、レンタルサーバで標準的な物が用意されていないでしょうか、レンタルサーバで用意されているので有れば、標準で用意されている物を利用した方が良いと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。パーミッションは設定してあります、postmail.cgiとjcode.plに権限の設定をしました。ただ、
>ファイルを設置したディレクトリは CGI が許可されたディレクトリか確認
これがよくわからないのでどのように確認したらいいのでしょうか?
あと、レンタルサーバーで用意されているかよく確認はしてみますが、出来れば自分で作ったレイアウト、デザインのフォームを使用したいと考えています。

お礼日時:2008/07/03 14:06

>コード画面が表示されてしまいます


ということはCGIとして処理がされていないという事です。
拡張子はCGIとして実行されるものになっていますか?

おそらく".cgi"だと思われますが。
    • good
    • 0
この回答へのお礼

早速回答下さりありがとうございます。そうなんです、CGIとして処理されていないですよね。ダウンロードしたファイルが小文字の拡張子cgiだったので、おっしゃる通りに大文字に書き換えてみましたが変化なしです。

お礼日時:2008/07/03 13:54

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