erst mal vielen Dank für die Hinweise. Ich glaub allerdings ich hab da noch ein anderes Problem.
Es liegt jedenfalls nicht an sendmail, sondern am Einsatz des strict-Pragmas, ohne zu wissen, warum man das tut.
Lies zusätzlich noch die Erläuterungen zu my. Na, dämmert's :-)
Ich muss also meine Variablen deklarieren lokal(my) reicht denke ich.
Die Danke-Seite wird zwar geöffnet und habe auch keine Fehlermeldung mehr. Aber mails bekomme ich trotzdem nicht. Der Debugger zeigt auch keine Fehler an. Was kann das nur sein?
use CGI;
my $query = new CGI;
my @names = $query->param;
-------> interne Daten aus den erwarteten hidden-Feldern auslesen:
my $delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
my $returnhtml = $query->param('return'); # ---> URL für Dankeseite
my $subject = $query->param('subject'); # ---> E-Mail-Subject
$subject =~ s/\s/ /g;
-------> Text der E-Mail aus den Formulardaten ermitteln:
my $mailtext = "";
foreach(@names) {
my $name = $_;
my @values = "";
@values = $query->param($name);
if($name ne "return" && $name ne "subject" && $name ne "delimiter") {
foreach my $value (@values) {
$mailtext = $mailtext.$name;
$mailtext = $mailtext.$delimiter;
$mailtext = $mailtext.$value."\n";
}
}
}
-------> E-Mail versenden:
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);
-------> Dankeseite an Browser senden:
print "Location: $returnhtml\n\n";