KDDIの法人用ホスティングサービスのサーバー内でホームページを立ち上げ、その中の「お問い合わせ」ページで問い合わせ内容をメール送信するようにしたくて、POST-MAILというフリーのCGIプログラムを入れたのですが、いろいろ試してみてもどうもうまくいきません。
詳細を書くので、どこが間違っているのか教えてください!
●toiawase.html 内の「送信ボタン」のhtml
↓
<form name="form" id="form" action="./cgi-bin/postmail.cgi" method="post" enctype="multipart/form-data" >
<input type="submit" value=" 送 信 " >
●postmail.cgi と check.cgi の1行目
#!/usr/bin/perl
●init.cgi で書き換えた部分
・送信先のメールアドレス
・# 送信者へのメール返信
# 0=no 1=yes
$cf{auto_res} = 0;
・# 本体プログラム【URLパス】
$cf{mail_cgi} = './cgi-bin/postmail.cgi';
・# ログファイル【サーバパス】
$cf{logfile} = './cgi-bin/log.cgi';
・# セッションファイル【サーバパス】
$cf{sesfile} = './cgi-bin/ses.cgi';
・# テンプレートディレクトリ【サーバパス】
$cf{tmpldir} = '../postmail/tmpl';
・# 送信後の戻り先【URLパス】
$cf{back} = '../kyodo-toiawase.html';
フリーの POST-MAIL という CGI プログラムというのは、こちらの CGI でしょうか。
http://www.kent-web.com/mail/postmail.html
ページの中ほどにパーミッションについて記載されていますが、一般サーバの方のパーミッションを設定して試してみてください。
私が回答で書いた URL の POST-MAIL ということでよろしいのですね。
postmail.cgi だけではなく、他のファイルについてもページの指定に従ってパーミッションを設定してください。
今出ているエラーは、data/log.cgi のパーミッションを 666 にすることで出なくなると思います。
済みません。logfile の配置場所を変更していたのですね。
data/log.cgi は cgi-bin/log.cgi に読み替えてください。
私は「KDDI シェアードプランACE」を使っているモノです。
このサーバー.htaccessの設定とかphp.iniの設定とかかなり細かくて厄介ですよね。
内容を見る限り私もパーミションの設定だとは思いますが、既に詳しく書かれている方が見えますので割愛します。
使われているメールソフトについては存じませんが、当方で行った対処方法を記載します。
1)フォームを設置しているディリクトリにphp.iniを配置する。
通常上位のphp.iniを参照すると思うのですが、ディリクトリによっては参照していないようでしたので、php.iniを配置したところ、入力については上手く動作しました。
2).htaccessに下記2行を追加する。
RewriteEngine On の直下に下記2行を追加したところ上手く送信できました。
RewriteCond %{HTTP_HOST} ^(hogehoge\.com)(:80)? [NC]
RewriteRule ^(.*) http://www.hogehoge.com/$1 [R=301,L]
うちのメールフォームはエラーログさえ出さずに、トップページ戻ってしまうという困った感じでしたので強制的にwww方へ飛ばしてエラーを回避しました。
ただし、これでは全てのURLにwwwがついてしまうので、落ち着いたらプログラムの見直しも含めて修正を行う予定です。
ちなみにウチで使っているプログラムはウチで配布しているメールフォームです。
説明書もなにもありませんが、よろしければお使いください。
http://www.hanamachi.com/?page_id=139
ログファイルが'./cgi-bin/log.cgi'になってますが、cgi-bin自体が書き込み禁止になっている可能性があります。他の書き込みOKなディレクトリに設定するのが良いかと思います。あと、あらかじめファイルを作っておくのが吉かと。
2014/08/01 07:23:07普通/cgi-bin/には更新ファイルは置きません。アタックに対して脆弱になるといけないから。で、/cgi-bin/フォルダ自体が書き込み禁止になってる可能性が有ります。
2014/08/06 21:22:35よって、ログファイルは、data/log.cgi等に置くのが適切かと存じます。