Почему Mutt не работает, когда я вызываю его из моего Perl CGI-скрипта? - PullRequest
0 голосов
/ 13 ноября 2009

Я разработал базу данных с использованием 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 ]

1 голос
/ 14 ноября 2009

См. Мои Устранение неполадок сценариев Perl CGI . Если это не решит вашу проблему, это, по крайней мере, поможет вам развить ваш вопрос, чтобы вы могли получить дополнительную помощь.

Вам также может понравиться Руководство Брайана по решению любой проблемы Perl .

0 голосов
/ 13 ноября 2009

Вы также можете захотеть использовать модуль Net :: SMTP, который будет взаимодействовать напрямую с почтовым сервером, а не в зависимости от системных инструментов. Это более переносимое решение, позволяющее избежать проблем с разрешениями.

0 голосов
/ 13 ноября 2009

Какую ошибку вы видите?

В частности, что находится в $!?

Возможно, процесс CGI не может выполнить Mutt - как насчет регистрации идентификатора пользователя и текущего пути скрипта:

print LOG getpwuid($<) . "\n";
print LOG $ENV{PATH} . "\n";

Является ли расположение исполняемого файла Mutt в пути и имеет ли этот пользователь (вероятно, «apache») разрешение на его выполнение?

...