1

cron ジョブによって実行される perl スクリプトがあります。スクリプトの最後に、終了したことを知らせるメールが送信されます。コマンドラインからスクリプトを実行すると、正常に実行されます。cron で実行すると、メールが届かないことを除いて、すべてが機能します。SENDMAIL を使用してメールを送信しています。root アクセス権がありません。私は標準ユーザーです。何かご意見は?

SENDMAIL に使用するスクリプトの一部を次に示します。

my $sendmail = "/usr/lib/sendmail -t";
my $to = "To: ". "me\@test.com\n";
my $from     = "From: SUCCESS\@test.com\n";
my $reply_to = "Reply-to: me\@test.com\n";
my $content = "Updated the File\n";
my $subject = "Subject: SUCCESS \n";
my $cc = "";

open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: $!";
print SENDMAIL $to;
print SENDMAIL $cc;
print SENDMAIL $from;
print SENDMAIL $reply_to;
print SENDMAIL $subject;
print SENDMAIL "Content-type: text/plain\n\n";
print SENDMAIL $content;
close(SENDMAIL);
4

2 に答える 2

0

sendmail へのパスは正しいですか? Cron は環境を認識していません。フル パスを使用してみてください。Ubuntu では「/usr/sbin/sendmail」になりますが、ディストリビューションによって異なる場合があります。

于 2013-08-06T00:02:41.457 に答える
0

これが答えです。CRON は、通常の実行時にスクリプトとは異なるファイル パスを使用するため、スクリプトが機能していないことが判明しました。

本当に役に立ったのは、メールを実行して、CRON が私のアカウントに送信したすべてのエラー メッセージを確認することでした。ああ、N00b であることの喜び。

于 2013-08-06T18:17:45.500 に答える