Почему Mutt не работает, когда я вызываю его из моего Perl CGI-скрипта?
Я разработал базу данных с использованием 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;
3 ответа
Смотрите мои Устранение неполадок сценариев Perl CGI. Если это не решит вашу проблему, это, по крайней мере, поможет вам развить ваш вопрос, чтобы вы могли получить дополнительную помощь.
Вам также может понравиться Руководство Брайана по решению любой проблемы Perl.
Вы также можете посмотреть на использование модуля Net::SMTP, который будет взаимодействовать напрямую с почтовым сервером, а не в зависимости от системных инструментов. Это более переносимое решение, позволяющее избежать проблем с разрешениями.
Какую ошибку вы видите?
В частности, что в $!
?
Возможно, процесс CGI не может выполнить Mutt - как насчет регистрации идентификатора пользователя и текущего пути скрипта:
print LOG getpwuid($<) . "\n";
print LOG $ENV{PATH} . "\n";
Находится ли исполняемый файл Mutt в пути, и имеет ли этот пользователь (вероятно, "apache") разрешение на его выполнение?