Sendmail在perl中工作,但在CRON中不工作

时间:2013-08-05 23:52:13

标签: perl cron sendmail

我有一个由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);

2 个答案:

答案 0 :(得分:0)

sendmail的路径是否正确? Cron不了解您的环境,请尝试使用完整路径。在Ubuntu中它将是'/ usr / sbin / sendmail',显然它可能因发行版而异。

答案 1 :(得分:0)

所以这就是答案。事实证明,脚本无法正常运行,因为CRON在正常运行时使用的文件路径与脚本不同。

真正有用的是运行邮件并查看CRON发送到我帐户的所有错误消息。啊,作为一个N00b的乐趣。

相关问题