No.7914 投稿時間:2003年01月19日(Sun) 12:00 投稿者名:畿<ミヤコ> URL:
初めまして。ローカルテスト用にWin機をサーバに仕立てました。
私の環境ではsendmailが使えないことはAN HTTPdのサイト(田中氏)で分かっていましたが、こちらでその代用法が載っているという紹介を受けて、挑戦しているところです。
設定で行き詰まってしまったところがあるので、ご助言いただきたいと思います。
= 環境 =
【OS】Win95
【ルータ】メルコ WLAR-L11G-L
【Perl】Active Perl 5.8.0.804
【HTTPd】AN HTTPd 1.42g
【sendmailもどき】sendまね~る 0.94
【ArGoSoft MailServer】未使用
= ディレクトリ構成 =
C:┬Program Files┬perl─bin─perl.exe
│ ├httpd142─httpd.exe
│ └sendm─sendmane.exe
└My Documents─(AN HTTPdドキュメントルート用フォルダ)┬mail1(フォームメール用フォルダ)┬index.html(公開フォームメール)
└...(他フォルダ、多数) └mail.cgi(postmail.cgiをリネーム。内容変わらず)
(各プログラムでパスの指定が必要な場合は、“C:/Progra~1/..."、“C:/Mydocu~1/..."で指定)
【参考にしたURL:http://homepage1.nifty.com/yito/namazu/gbook/20010907.0924.html「空白問題」の回避方法】
= 症状 =
困っている点は、フォームメールからの送信がうまくいっていないことです。「ありがとうございました. 送信は正常に完了しました.」という表示は出るのですが、待てど暮らせどメールが来ません。
(1)sendmane.exe単体での送信テストは成功する
→プロバイダサーバ、yahooメールにて実験済
(2)postmail.cgi 改(post.cgiとリネームしたものと同等)も、さくらサーバ上でだと送信できる
(3)サーバ機本体でのテスト(127.0.0.1、192.168.0.*)、LAN内の他機からのテスト(サーバ機のプライベートIP)と、全て結果は変わらず(つまり失敗)。
(4)試しに別のメールフォーム用CGI(MyTools.NETさんの「T-FormMail 1 ver.1.03(最新版)」)でもテストしてみたが、結果は変わらず(上記同様、失敗)。
********************************************
以上のようなことから、自分がmail.cgiの「sendまね~る」へのパス指定が間違えている、と思っています。
しかし上記のような配置で「C:/Progra~1/sendm/sendmane.exe」と記述することに、何か問題があるのでしょうか?
(MS-DOSプロンプト画面ではこの記述でプログラムが呼び出せるのです)
以上のような状況ですが、よろしくお願いします。
No.7918 投稿時間:2003年01月19日(Sun) 16:17 投稿者名:鷹の巣 URL:http://sakaguch.com/
> 以上のようなことから、自分がmail.cgiの「sendまね~る」へのパス指定が間違えている、と思っています。 > しかし上記のような配置で「C:/Progra~1/sendm/sendmane.exe」と記述することに、何か問題があるのでしょうか? > (MS-DOSプロンプト画面ではこの記述でプログラムが呼び出せるのです) とりあえず、 C:/Progra~1/sendm/sendmane.exeをC:/sendm/sendmane.exeとして動作出来る様に sendmというフォルダを移動させて、試して下さい。 工夫をすれば、色々と出来るかもしれませんが、半角空白やタブというのは、 いままで、一般にデータの区切り符号や引数の区切り符号として使用されてきました。 Perlにしても同じ扱いになります。 また、Perlにはディレクトリ名をProgra~1という様なエイリアス(別名)では、呼べないと考えます。 従って、Perlの様なCGIを使用する場合は、 1.ファイル名にスペースを含まないこと。 2.ファイル名に漢字を含まないこと。 3.windowsと言えどもファイル名の大文字や小文字も設定者は、識別すること。 等を行っていると、無益な障害から開放されます。 私は、以下の様なCドライブ(システムドライブ)とは、別のDドライブに公開データを 集中させることを推奨します。理由は、 1.セキュリティ上の管理のしやすさ 2.データバックアップ上の管理のしやすさ 3.Cドライブの再インストールへのしやすさ 等です. = 推奨ディレクトリ構成の一例 = D:┬perl─bin─perl.exe │ ├httpd─httpd.exe │ ├sendm─sendmane.exe │ └WWW┬public_html(AN HTTPdドキュメントルート)<----一般パス │ └cgi-bin┬mail1(フォームメール用フォルダ)┬index.html(公開フォームメール) (実行パス)│ │ └...(他フォルダ、多数) └mail.cgi(postmail.cgiをリネーム。内容変わらず) # プログラムファイルもDドライブ直下にインストールした方が障害は少ないと考えます。
No.7934 投稿時間:2003年01月20日(Mon) 02:29 投稿者名:畿<ミヤコ> URL:
いろいろと悪戦苦闘してみました。
> とりあえず、
> C:/Progra~1/sendm/sendmane.exeをC:/sendm/sendmane.exeとして動作出来る様に
> sendmというフォルダを移動させて、試して下さい。
まずこれが一番簡単に出来るものだったので試してみたのですが、結果は変わりませんでした。
(略)
> 従って、Perlの様なCGIを使用する場合は、
> 1.ファイル名にスペースを含まないこと。
> 2.ファイル名に漢字を含まないこと。
> 3.windowsと言えどもファイル名の大文字や小文字も設定者は、識別すること。
> 等を行っていると、無益な障害から開放されます。
このようなご指摘を頂いたので、httpdのperl.exeの指定など含めて、全て見直した上で実験したのですが、やはりうまく行きませんでした。
> 私は、以下の様なCドライブ(システムドライブ)とは、別のDドライブに公開データを
> 集中させることを推奨します。理由は、
> 1.セキュリティ上の管理のしやすさ
> 2.データバックアップ上の管理のしやすさ
> 3.Cドライブの再インストールへのしやすさ
> 等です.
>
>> = 推奨ディレクトリ構成の一例 =
(以下略)
最終手段として、パー切り→OSの再インストール→全ソフトの入れ直しをしてみました。
ディレクトリ構成は推奨例と同じにしました。
しかし状況は変わりません。
そこで発送の逆転を計ってみました。
postmail.cgi改の設定箇所の注意の中で
「$mailprog = 'D:\sendm\sendmane.exe';
とせずに
$mailprog = 'D:/sendm/sendmane.exe';
として下さい。」
とあったので下の様式で書いていたのですが、これをわざと上記のWin形式の記述にしてみました。
・・・すると今までがバカらしく思えるぐらい、あっさりとメールが届きました。
(postmail.cgi改にて確認。他の類似cgiではまだ試していませんが・・・)
そういうわけで私としては解決してしまったのですが、自分でもいまいち釈然としません(苦笑)。