CGIに詳しい方、教えてください。
HP上にサンプル応募フォームを作って、アンケート形式で答えてもらい、その結果をメールで私に送ってもらう(sendmail)の件です。

以下のようにCGIを記入しています。
フォームに記入して「送信」すると、「送信は完了しました」というメッセージは出るのですが、一向にメールが届きません。
どこか記述がおかしいのでしょうか?

なお、HPのFAQには

Sendmailのパスは
/usr/sbin/sendmail です。

と書いてあったので、それにあわせたつもりです。
よろしくお願いします。

-------------------------------------------
#!/usr/bin/perl

$ver = 'PostMail v1.01';

#------------#
# 基本設定 #
#------------#

# メールソフト種類
# 1 : sendmail (UNIX)
# 2 : blatj (NT)
$prog_type = 1;

# コード変換ライブラリ
require './jcode.pl';

# メールソフトまでのパス
# → sendmailの例: /usr/lib/sendmail
# → blatjの例: c:\www\mail\blatj.exe
$mailprog = '/usr/sbin/sendmail';

# 送信先メールアドレス
$mailto = '私のメールアドレス';

# 送信前確認
# 0 : no
# 1 : yes
$preview = 1;

# メールタイトル
$subject = "サンプル応募メール";

# ホスト名取得モード
# 0 : $ENV{'REMOTE_HOST'}で取得できる場合
# 1 : gethostbyaddr関数で取得できる場合
$get_remotehost = 0;

# スクリプト名
$script = './sample.cgi';

# 一時ファイル(blatjの場合のみ)
$tempfile = "./$$\.tmp";

# 送信後の戻り先
$back = 'トップページのURL';

# method形式 (0=no 1=yes)
$method = 'POST';

# bodyタグ
$body = '<body bgcolor="#F1F1F1" text="#000000">';
------------------------------------------

このQ&Aに関連する最新のQ&A

A 回答 (4件)

でしたら、sendmailのパスが間違ってるのでしょうか?


$mailprog = '/usr/lib/sendmail';
でやって見てください。
それでも駄目なら、サーバー管理者にsendmailのパスをたずねてください。
    • good
    • 0
この回答へのお礼

Lio様、たびたびありがとうございます。

パスは /usr/sbin/sendmail らしいんですが、
いずれにしろ正確に作動しません。
他のwebサーバではまるっきり同じものできちんと動くのですが?
サーバ管理者に直接質問してみます。

ありがとうございました。

お礼日時:2002/01/14 20:50

こんばんは。


上記の部分では特に問題なさそうです。sendmail へのパスが間違っているのに、「送信は完了しました」というメッセージは表示しないはずですし。どちらかというと、送信フォームのHTMLや、送信先のメールアドレスに間違いが無いかが気になります。

PostMail ってKentさんとこのですよね?
同じSourceが見れたほうが良いと思うので、可能であれば、最新版で試されてはいかがでしょうか。

参考URLから、Ver1.61 がダウンロードできます。

参考URL:http://www.kent-web.com/data/postmail.html
    • good
    • 0
この回答へのお礼

annie_x様、アドバイスありがとうございました。
最新版があるんですね?
早速ダウンロードしてチャレンジしてみます。

どうもありがとうございました。

お礼日時:2002/01/14 20:51

$mailprog = '/usr/sbin/sendmail';



$mailprog = '/usr/sbin/sendmail -t';
ではどうですか?
パスは合ってると思いますよ。。私のサーバーと同じsendmailのパスなので。
    • good
    • 0
この回答へのお礼

Lioさん、こんにちは。
アドバイスありがとうございました。
で、早速やってみたのですが、やはり
-------------------
ERROR !
メールプログラムのパスが不正です
-------------------
でした(T^T)

パスはあっているとおい確認がとれただけでも嬉しいです。
いろいろと試行錯誤してみます。
ありがとうございました。

お礼日時:2002/01/14 08:57

↓この部分が違うと思うよ(^^)↓


$mailprog = '/usr/sbin/sendmail';
usrの後をbinにしなければいけないのにsbinになってるから
' 'の内部を/usr/bin/sendmailに変えてみて、おそらく動作するはずだよ。
cgi製作者のミスなのかもねw
    • good
    • 0
この回答へのお礼

seiryu1985様、早速のアドバイスありがとうございます。

しかしながら、おっしゃるとおりに変えてみると、
-------------------
ERROR !
メールプログラムのパスが不正です
-------------------

このようなメッセージが出ます。

前のままだと、送信内容の確認画面が出て、「送信」で
きちんと完了するんです。
でも、メールが届きません。
記入してあるメールアドレスは、間違いはないです。

わかりません。。。

お礼日時:2002/01/14 01:12

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

このQ&Aと関連する良く見られている質問

Q#!/usr/local/bin/perlとしたい

WindowsXP上でCGIを動作させる環境を構築しています。
しかし、サーバにアップロードする際にいちいちPerlパスを変更するのが
面倒なので、「#!/usr/local/bin/perl」と、基本的なディレクトリ指定にしたいです。
(サーバそうでなければ結局指定し直しですが)
現在、「#!c:/perl/bin/Perl」で動かしています。

どうすれば出来るでしょうか?ご教示願います。
ちなみにApacheは2.0.55です。

Aベストアンサー

c:/usr/local/bin/perl.exe
となるようにしてください。

Q#!/usr/local/bin/perlの変更。

┬ cgi_script
│   └***.cgi

└ access_g
    └11111
      └22222
        └***.cgi

今まで、cgi_scriptフォルダの直下にあるcgiファイルの一番上の行は
#!/usr/local/bin/perl
できちんと動作していました。

今は、そのcgi_scriptフォルダと同じところにあるaccess_gフォルダの中にある、
11111フォルダの下の2222フォルダの下にあるcgiファイルを実行させたいのですが、
#!/usr/local/bin/perl
をどのように変更していいかわからなくなってしまいました。

動作させたいcgiファイルはcgi_scriptフォルダの中に入れたところきちんと動作したので、
動作上の問題はないと思われます。

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

Aベストアンサー

それは変更する必要ないですよ。
また、動かない理由としてパーミッション設定をフォルダにもきちんと設定しているでしょうか?
CGIによってはフォルダのパーミッションをすべて「777」にしないと動かない物もあります。

QPerlの初歩の初歩の初歩(#!/usr/local/bin/perlについて)

いつもお世話になっています。
Perlを勉強し始めて1か月たっていない人間です。
調べてもよく分からず、気持ち悪いので
どうか教えてください。

Perlで記述するとき1行目にperlへのパスを書きますが
プロバイダでのパスは「#!/usr/local/bin/perl」です。
私のPC環境では「#!d:/perl/bin/perl」になります。

ある日、PC環境で動作検証するとき
間違ってプロバイダのパスのほうを記述してしまいました。
しかし、それでもPC上で動作しました。

なぜパスが違うのに動作するのでしょうか?

なお、わけの分からないまま
「Perlへのパスを通す」というのを昔
やったことがあります。関係がありますか?

ある場合、それをすると
「#!d:/perl/bin/perl」の「d:/perl/」の部分が
「/usr/local/」と同になるということなのでしょうか?

Aベストアンサー

httpdの種類や設定によっては1行目のパスを無視して動作させることが出来ます。
例えばAnHTTPDは最初からcgiの拡張子とperlを関連付けて使う仕様だった気がします。
Apache1.3(Win)もWindowsのOSでcgi拡張子とPerl.exeの関連付けがしてあれば動作させることが出来ます。

QSSI(

Q/usr/local/bin/perl の発音

あまりにも初歩の質問かもしれませんが、
/usr/local/bin/perl
・・・を、声に出すとすると、
/ユーザー/ローカル/ビン/パール
・・・で、良いのでしょうか?

Aベストアンサー

新版 UNIX 由来/読み方辞書
http://x68000.q-e-d.net/~68user/unix/unix-term-dic.html


このカテゴリの人気Q&Aランキング

おすすめ情報