2009-11-13 7 views
-1

J'ai développé une base de données avec l'utilisation de Perl CGI avec C++. J'ai un problème en envoyant les résultats au courrier. J'ai utilisé le code suivant:Pourquoi le mutt échoue-t-il lorsque je l'appelle depuis mon script Perl CGI?

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

Il serait utile si vous avez inclus l'erreur quelques détails de l'environnement dans lequel ce code est censé s'exécuter. – heferav

+0

Quel est le message d'erreur, etc? Stackoverflow n'a pas encore implémenté la fonctionnalité Psychic. :) –

+1

Qu'est-ce que C++ a à voir avec quoi que ce soit dans ce problème? –

Répondre

0

Quelle erreur voyez-vous? En particulier, quelle est dans $!?

Il se pourrait que le processus CGI ne peut pas exécuter Mutt - comment sur la connexion de userid du script et le chemin actuel:

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

est l'emplacement de l'exécutable de Mutt dans le chemin, et est-ce que l'utilisateur (probablement « apache ') avez-vous la permission de l'exécuter?

0

Vous pouvez également utiliser le module Net :: SMTP, qui communiquera directement avec le serveur de messagerie au lieu de dépendre des outils du système. C'est une solution plus portable, et évite l'ensemble des problèmes d'autorisations.

Questions connexes