重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

過去の質問にも同じ、質問があったのですが、解決法(-f)を試したところ、うまくいかなかったので、重複しますが質問させていただきます。

sendmailのパスは、あっているのに、メールが届きません。他のサーバでは、うまく動いています。
メール送信のCGI部分は、以下の通りです。
--------------
sub mailsend{

&jcode'convert(*subject, "jis");
$mailhead = "To: $mailto<$mailto>\n";
$mailhead .= "From: $adminname<$mail>\n";
$mailhead .= "Subject: $subject\n";
$mailhead .= "\n";

if (-x $sendmail) {
unless (open(OUT, "| $sendmail $mailto > /dev/null")) {
&mail_err();
}
unless (print OUT &mimeencode($mailhead)) {
&mail_err();
}
unless (print OUT $mailbody) {
&mail_err();
}
close(OUT);
} else {
&mail_err();
&error("$sendmailがありません。");
}
}

sub mail_err {
&error("メールの送信に失敗しました。");
}
-----------------------

エラーは、なにも返ってきません。

ちなみに、このサーバは、
1. 同じ断層にファイルをおいても、フルパスをかかなくてはいけない
(フルパス例:/home/content/ログイン名の頭文字1/2/3/ログイン名/html/)
2. CGI-BINフォルダではなくCGIにする
3. CGI以下の断層では、image等は、表示されない
という注意点があります。

A 回答 (2件)

貴方がそのシステムに関して単なるユーザなら、システム管理者に確認を依頼してください。



管理者が対応してくれないようだったら、sendmail経由でなく、モジュールNet::SMTP等を利用して、直接メール送信するコードに変更すれば、エラーについて独自の処理が行えるので、障害解析に役立てられるかと。

参考URL:http://www.perldoc.com/perl5.6.1/lib/Net/SMTP.html
    • good
    • 0
この回答へのお礼

お返事遅くなってすみません。回答ありがとうございます。システム管理者にログの依頼をしたところ、ユーザには、その権利を与えていないとの回答でした。Net::SMTPを使ってみようと、思ったのですが、こちらもうまく動かず。。。(なにか初歩的なミスを見落としてるのだと思います。)もう少し、CGIの構造を整理してミスを再確認してみます。
osamuyさん、サポートありがとうございます。

お礼日時:2004/09/09 04:11

メールがSPAM扱いされて、送り先側で拒否されているのでは。


maillogやらmessagesなどのシステムログを確認されてみては。

この回答への補足

maillogやmessagesなどのシステムログは、どうやったら、確認できるのですか?(素人質問で申し訳ありません。。)
もし、スパムメールと判断されている場合、何かメールに付け加える必要がありますか?他のサーバを使って正常に送信されてくる場合、ヘッダにWarningというのは、書かれていません。
osamuyさん、書き込みありがとうございます

補足日時:2004/09/04 13:40
    • good
    • 0
この回答へのお礼

投稿ありがとうございます。

お礼日時:2004/09/04 13:40

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