我有一个由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);
答案 0 :(得分:0)
sendmail的路径是否正确? Cron不了解您的环境,请尝试使用完整路径。在Ubuntu中它将是'/ usr / sbin / sendmail',显然它可能因发行版而异。
答案 1 :(得分:0)
所以这就是答案。事实证明,脚本无法正常运行,因为CRON在正常运行时使用的文件路径与脚本不同。
真正有用的是运行邮件并查看CRON发送到我帐户的所有错误消息。啊,作为一个N00b的乐趣。