我开发了一个使用Perl CGI和C ++的数据库。我在将结果发送到邮件时遇到问题。我使用了以下代码:
print LOG "[",`date`,"] Sending mail to $email\n";
system (qq{mutt -s "MMM" -a $zip_file $email < $job_id});
if ( $? == 0) {
print LOG "[",`date`,"] Sending mail to $email :: SUCCESS ::\n";
}else {
print LOG "[",`date`,"] Sending mail to $email :: FAILED ::\n";
}
close LOG;
答案 0 :(得分:1)
查看我的Troubleshooting Perl CGI scripts。如果这不能解决您的问题,它至少会帮助您提出问题,以便您获得更多帮助。
答案 1 :(得分:0)
你看到什么错误?
特别是$!
?
可能是CGI进程无法执行Mutt - 如何记录脚本的用户ID和当前路径:
print LOG getpwuid($<) . "\n";
print LOG $ENV{PATH} . "\n";
Mutt的可执行文件的位置是否在路径中,并且该用户(可能是“apache”)是否有权执行它?
答案 2 :(得分:0)
您可能还想查看使用Net :: SMTP模块,该模块将直接与邮件服务器通信,而不是依赖于系统工具。这是一种更便携的解决方案,可以避免整个权限问题。