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 回答