2009-11-13 4 views
-1

Я разработал базу данных с использованием Perl CGI с C++. У меня проблема при отправке результатов на почту. Я использовал следующий код:Почему mutt терпит неудачу, когда я вызываю его из своего сценария CGI Perl?

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; 
+1

Это поможет, если вы включили ошибку в некоторые детали среды, в которой должен работать этот код. – heferav

+0

Какое сообщение об ошибке и т. Д.? Stackoverflow еще не реализовал экстрасенсорную функцию. :) –

+1

Что делает C++ что-либо в этой проблеме? –

ответ

0

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

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

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

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

является расположение исполняемого Mutt в пути, и делает, что пользователь (вероятно, «Апач ') имеют разрешение на его выполнение?

0

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

1

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

Вам также может понравиться brian's Guide to Solving Any Perl Problem.