投稿日:2003年01月19日 作成鷹の巣

No.7914 半角空白を含むフォルダにsendmane.exeをインストールするとフォームメールがうまく動きません。



半角空白を含むフォルダにsendmane.exeをインストールするとフォームメールがうまく動きません。

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ではまだ試していませんが・・・)

そういうわけで私としては解決してしまったのですが、自分でもいまいち釈然としません(苦笑)。


|目次|掲示板|過去ログ目次|▲頁先頭|