【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?

こんにちは。
sendmailが上手く動かなくて困っています。特にエラーは出ないのですが、メールが全く届きません。
以下プログラムです。(必要そうな箇所だけ)

$sendmail = '/usr/sbin/sendmail';
$mail ='mail@xxx.xx';
$msub = 'メールタイトル';
&mailto if ($sendmail && $mail);
sub mailto {
$mcom = $FORM{'comment'};
$mcom =~ s/&lt;/</g;
$mcom =~ s/&gt;/>/g;

# メール本文
$mbody = <<"EOM";
$mcom
--------------------------------
ホスト名:$host
ブラウザ:$ENV{'HTTP_USER_AGENT'}
--------------------------------
EOM
if ($msub eq ""){ $msub = NO Subject; }
&jcode'convert(*msub,'jis');
&jcode'convert(*mbody,'jis');
open(MAIL,"| $sendmail -t") || &result;
print MAIL "To: $mail\n";
print MAIL "From: $mail\n";
print MAIL "Subject: $msub\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "X-Mailer: $ver\n\n";
print MAIL "$mbody\n";
close(MAIL) || &result;
}

プログラムは一言フォームからコメントを受け取るものです。
jcodeの読み込み、decode等は正常に行われており、openやcloseの前後にprint $mbodyなどしてみても正常に表示されることから、確かだと思います。
他の有名なCGIサイトさんのスクリプトや本等を参考に自作したもので、もちろんそれらのメールフォームは正常に動きます。
ですから、何か小さなミスをしているだけだと思うのですが、それが何なのか見つけることが出来ません。
もし何かお気づきの点がありましたら、教えていただければと思います。

A 回答 (2件)

こんにちは。



上記のソースをコピーし、自分の使っているサーバーに合わせて設定してテストしてみましたが、正常に届きましたよ。

根本的なところで
・sendmailは使えるサーバーか
・sendmailのパスはあっているか
・メールアドレスはあっているか
をご確認なさったほうがいいかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます…!わざわざ試してくださったんですね!
プログラムは問題ないとのこと、安心いたしました。

あれからいくつか試して、こちらのツールについては、sendmailを呼び出す前のプログラムの方で、「close(OUT);」のセミコロンを忘れていたために正常に動作しなかったと思われます。(他のサーバで試したらプログラムエラーになったので分かりました)
メールが送れないだけで他は正常だったので、見逃していました…申し訳ありません。

ただ今まで設置して正常に動いていたメールフォームもメールがここ2,3日送れず、鯖の不具合もあったんじゃないかと疑っているんですが(笑)(朝は駄目だったのに今もう一度試したら送れたので)

お返事遅くなって申し訳ありませんでした。ありがとうございました!

お礼日時:2005/02/21 13:40

$msubに日本語文字が使われています。


JISコード変換の後にbase64なりでエンコードする必要が
あります。
    • good
    • 0
この回答へのお礼

こんにちは!
base64ってそうゆう役割だったんですね…!他の方のプログラム見て、なんの意味があるんだろう、と思ってました。
早速付け足して正常な日本語で読めました。アドバイスありがとうございました!

お礼日時:2005/02/21 13:43

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


おすすめ情報