シゲヒロさん、
http://www.piedey.co.jp/softs/blat.html
には、BlatJについて、
「本ソフトは、自分で自分の面倒を見られる人の便宜のために公開するものです。初心者が使いこなすのは困難です。特に、初心者がWebフォームからの電子メール送信に使うのは、99%以上無理と思って間違いありません。...」
と書いてありますね。
そんなことはないと思うのですが、質問攻めにあってこんな風に書いているのかもしれません。
おはようございます。
木村さんへ
ご指摘ありがとうございます。
ずいぶんと初歩的なミスで、お恥ずかしいです…。
で、その後再度Blatjで試したのですが、だめで、改めてsendmaneでテストしたところ、うまくいきました。
※sendmaneでの処理は、以前テストした部分をコメントアウトして残しており、そこを元に戻して使用しただけなのですが…。
初歩的なミスやら、色々重なっていたようです。
お手数をおかけしました。
ありがとうございました。
>シゲヒロさん
木村と申します。ソース拝見させていただきましたが、
×$adminMail = 'ikd\@jan.ne.jp';でいけると思います。
○$adminMail = 'ikd@jan.ne.jp';
×$mailTo = 'ikd\@jp-h.ne.jp';
○$mailTo = 'ikd@jp-h.ne.jp';
ありがとうございます。
中田さんへ
パスは相対パスです。
ブラウザからCGIを呼び出した場合(説明が下手ですいません。要は、ブラウザのアドレスバーに http://xxx.xxx.jp/xxx/xxx.cgi と入力した場合です。)と同じように、コマンドプロンプトでも XXX.cgi のあるディレクトリにカレントディレクトリを移動してテストしました。
ブラウザから呼ぼうが、コマンドラインから呼ぼうが、本来同じ動作をすると認識していたのですが、違うものですから…。
eternallyさんへ
sendmane も既に試していますが、同様の状態です。
httpdとかperl以外の問題でしょうか?
Blatjでなくとも、とにかくCGIでメールを送信できればOKです。
一応、該当部分のソースは以下に置きました。
http://9684.dip.jp/ftp/mail.cgi.txt
ご覧いただいて、ご教授いただければと思います。
シゲヒロさん
Blatjでなければだめなのでしょうか?
CGIからメールが送れればいいと言うのであれば、Sendmaneというsendmail互換のソフトがあります。
現在使用していて問題なく送信できます。
一度試されてはどうですか?
Sendmane配布サイト
http://hypweb.net/xoops/
シゲヒロさん、
「ブラウザからcgiを呼び出した場合」という意味がよくわかりません。
そのCGIのソースの関連した部分を示してもらった方が話が通じるかもしれません。
$tempfile は絶対パスですか? 相対パスなら、コマンドラインのカレントディレクトリによりますよね?
Blatjに関しての質問です。
環境は、
Windows2000 SP4
ANHTTPD 1.42k
ActivePerl 5.8.0 build 804
Blat v1.8.2+J2.5
です。
Blatjによるメール送信で、ブラウザからcgiを呼び出した場合のみ、メールが送信されません。エラーにもならず、スルーしてしまいます。
コマンドラインから
>blatj.exe filename.txt -t xxx@xxxx.ne.jp
などとしての起動では問題ありません。
同様にコマンドラインから、
>perl
open( MAIL, "| $blatj $tempfile -t $to -s \"$subject\" -q" ) || &error("メール送信に失敗しました");
close( MAIL );
としての起動でも、問題なくメールは送信されます。
※各変数の部分は、実際には一度実行し、(デバッグ処理として)ブラウザへ表示させ、コピペでDOS窓に持ってきていますので、実際の実行時と同じになるはずです。
system()関数を用いた方法でもメールは送信されます。
※上と同様に、一度ブラウザに表示させてからのコマンド実行です。
ところが、ブラウザからcgiを呼び出した場合のみ、メールが送信されません。
色々調べたのですが、お手上げ状態です。
どこか原因として考えられる部分がありましたら、教えていただけませんでしょうか?
よろしくお願いします。