記事の最後へ▼ 
< 質 問 >
Perl.exeが複数起動している

よろしくお願いします。
環境は、
Windows2003Server
IIS6.0
Perl v5.8.8
XMail 1.22
XMailCFG 2.22a
です。

テスト用のwebサイトからメールを送信することを目標に以下のように構成しました。
IISのマッピングでは、
.cgi C:\Perl\bin\perl.exe "%s" %s GET,POST
.pl C:\Perl\bin\perl.exe "%s" %s GET,POST
と設定しています。

C:\Inetpub\wwwroot\testフォルダを作成。その中に「postmail.cgi、mailtest.html」を配置。仮想ディレクトリを設定。
C:\sendmailフォルダを作成。その中に「sendmail.cgi」を配置。

mailtest.htmlでは、<FORM action="postmail.cgi" method="POST">というようにsubmitします。
postmail.cgiでは、「$mailprog = 'c:\perl\bin\perl.exe c:\sendmail\sendmail.cgi';」としています。

動作としては、mailtest.htmlで「送信」ボタンを押すと、メールが送信され、
「送信完了」画面(postmail.cgi内に記載)を表示させます。

このような設定で操作すると「送信」ボタンを押してから「送信完了」画面が
表示されるまでに相当時間がかかってしまいます(10〜20秒。メールは飛びます)。携帯から操作しても同じ動作です。
タスクマネーじゃでその様子を確認すると「Perl.exe」が2つ同時に起動しています。
ユーザー名は両方共に「IUSR_コンピュータ名」です。
私の見解では、cgiの実行に1つ、XMailの実行に1つなのかなと思っています。

そこで.cgiのマッピングを「.cgi C:\Perl\bin\perlis.dll」に変更してみたところ、
タスクマネージャで確認することが困難な程早く処理され、さくっと「送信完了」画面になります。メールも飛びます。
(この場合は、Webサービス拡張のISAPI Extension等も許可に設定しました)
ただ、Content-typeやContent-Length等が画面に表示されてしまいます。(変更前には表示されなかったのに)

また、携帯(FOMA N900iS)で同じことを行うと送信完了画面が表示されず、エラー画面になります。
「接続先のサーバは現在ご利用できません(502) Your request cannot be processed.(502)」メールは飛んでいます。

このような状況です。
IEでも携帯でもさくっと送信完了画面を遷移して、メールが飛ぶようにしたいです。
ところが、上記のように思いの通りにはできません。
何か解決方法はありますでしょうか?
アドバイスを宜しくお願いします。

あるしんど (06.09/06)


【 通りすがり (06.09/06) 】

解決方法ではないですが、
XMailと関係が無い話だと思うので、他で質問する方が良いと思います。

また、今回の問題は、あるしんどさんが作成されたPerlプログラムの内容が抽象的に書かれているだけですから、他の方が問題を発見するのは難しいと思います。


【 Dr.Ballon (06.10/06) 】

あるしんどさん、

 「postmail.cgi」というのは「KENT WEB」で配布されている「POST MAIL」のことでしょうか?
 もしそうだとすれば、私は素直にXMail同梱のsendmail.exeをお使いになるべきだと思います(動作確認済)。


【 あるしんど (06.12/06) 】

みなさん、レスありがとうございます。

Dr.Ballonさんのご指摘の通り、
sendmail.exeに変えてみたところ、
正常に動作しました。
Perlが二重で起動することもないです。
「素直にXMail同梱のsendmail.exe」を
使用することにしたいと思います。
通りすがりさん、どうもすみませんでした。
以後、気をつけます。
ありがとうございました。

記事の先頭へ▲ 
SUPER LABORATORY