Schrift
[thread]455[/thread]

Probleme mit kleinem Script.

Leser: 1


<< >> 9 Einträge, 1 Seite
Gast Gast
 2005-03-08 20:19
#4587 #4587
Hallo.

Folgendes Programm gibt mir einen Internal Server Error:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl -w
use CGI qw(:standard);
$sendmailpfad = "/usr/lib/sendmail";
$Mailsubject = "Hallo Welt";
$webmastermail = "name@domain.example";
open (MAIL,"|$sendmailpfad -t")|| die "Falsche Verweisung\n";
print MAIL "To: $webmastermail\n";
print MAIL "From: $webmastermail\n";
print MAIL "Subject: Seite wurde aufgerufen!!!\n\n";
print MAIL "Mein Text\n";
close (MAIL);


Es liegt in meinem cgi-bin Verzeichnis als mailer.cgi mit Permission 777.
Es soll bei Aufruf eine Email an name@domain.example senden, gibt aber nur besagte Fehlermeldung ab.

Was ist da los?

Kann der Internal Server Error etwas mit dem Pfad zu tun haben, den ich für sendmail angegeben habe?

Für Eure Anregungen wäre ich dankbar, da ich mich nicht sonderlich gut auskenne.

edit pq: code-tags, email-addressen mit .example\n\n

<!--EDIT|pq|1110311340-->
GwenDragon
 2005-03-08 20:29
#4588 #4588
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Das Skript gibt keinen Header aus.
Es fehlet noch ein
Code: (dl )
print "Content-type: text/plain\n\n";
Sven2005
 2005-03-08 20:46
#4589 #4589
User since
2005-03-08
2 Artikel
BenutzerIn
[default_avatar]
Jetzt sieht es so aus, habe aber immer noch das gleiche Problem:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl -w
use CGI qw(:standard);
$sendmailpfad = "/usr/lib/sendmail";
$Mailsubject = "Hallo Welt";
$webmastermail = "name@domain.example";
open (MAIL,"|$sendmailpfad -t")|| die "Falsche Verweisung\n";
[b]print "Content-type: text/plain\n\n";[/b]
print MAIL "To: $webmastermail\n";
print MAIL "From: $webmastermail\n";
print MAIL "Subject: Seite wurde aufgerufen!!!\n\n";
print MAIL "Mein Text\n";
close (MAIL);


Kann es sein, das mein sendmail gar nicht in /usr/lib/sendmail liegt und ich deswegen einen Internal Server Error bekomme?
Dann hätte aber mein Webspaceanbieter irgendwas geändert ohne vorher Bescheid zu geben - was durchaus schon mal vorkommt.

edit pq: code-tags, email-addressen mit .example\n\n

<!--EDIT|pq|1110311380-->
GwenDragon
 2005-03-08 21:01
#4590 #4590
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Code: (dl )
ann es sein, das mein sendmail gar nicht in /usr/lib/sendmail liegt
Kann sein.

Ein
use CGI::Carp qw(fatalsToBrowser);
am Anfang des Skripts zeigt bei einem Fehler die Zeilennummer an (wahrscheinlich ist es die Zeile mit dem die("falsche ....
Zudem solltest du open und close auf einen Rückgabewert prüfen.\n\n

<!--EDIT|GwenDragon|1110308554-->
pq
 2005-03-08 21:50
#4591 #4591
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
bitte das nächste mal code tags verwenden und email-addressen mit der .example-tld.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2005-03-08 21:52
#4592 #4592
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Wiki:das hier sollte man gelesen haben.\n\n

<!--EDIT|pq|1110311628-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Dubu
 2005-03-09 01:50
#4593 #4593
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Sven2005,08.03.2005, 19:46]
Code: (dl )
$webmastermail = "name@domain.example";
[/quote]
Hier bitte einfache Anfuehrungszeichen benutzen oder das @ quoten, da sonst das Array @domain interpoliert wird.
ptk
 2005-03-09 12:04
#4594 #4594
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Bei modernen Systemen liegt sendmail in /usr/sbin. Am sichersten ist es, wenn man ein Modul wie Mail::Mailer benutzt oder wenigstens Teile des Codes davon. Mail::Mailer schaut fuer sendmail hier nach: /usr/lib/sendmail;/usr/sbin/sendmail;/usr/ucblib/sendmail
Sven2005
 2005-03-09 15:23
#4595 #4595
User since
2005-03-08
2 Artikel
BenutzerIn
[default_avatar]
Ja, das war die Lösung des Problems.

Lag sendmail früher bei meinem host im Verzeichnis "lib" ist es nun im "sbin" Verzeichnis zu finden. Das Script hat mir also deswegen einen Internal Server Error ausgegeben und das veränderte Verzeichnis war auch der Grund, warum das Script von heute auf morgen nicht mehr lief.

Danke für die schnellen Antworten!
<< >> 9 Einträge, 1 Seite



View all threads created 2005-03-08 20:19.