Hallo,ich habe ein Formular, in dem ich einen von vier verschiedenen Empfängern auswählen kann. Die Emailadresse ist nicht in der HTML Datei enthalten, sondern soll vom Skript ermittelt werden in Abhängigkeit vom Wert der Empfängerfeldes aus dem Formular.
Es will aber nicht funuktionieren. Vielleicht kann mir jemand weiterhelfen.
Hab hier mal den HTML Code und den CGI Code.
HTML DATEI ANFANG
<form action="./cgi-bin/selfmail.pl" method="post">
<input type="hidden" name="return" value="./kontanktformular_danke.htm">
<input type="hidden" name="delimiter" value=": ">
<input type="hidden" name="subject" value="Anfrage über Kontakt-Formular">
<select name="Anrede" size="1">
<option value="Herr">Herr
<option value="Frau">Frau</select>
<p>Vorname</p>
<input type="Text" name="Vorname" value="" size="30" maxlength="30">
<p>Name</p>
<input type="Text" name="Name" value="" size="30" maxlength="30">
<p>Emailadresse</p>
<input type="Text" name="Email" value="" size="40" maxlength="40">
<p>Mitteilung senden an:</p>
<select name="Empfaenger" size="1">
<option value="MA1">Mitarbeiter1
<option value="MA2">Mitarbeiter2
<option value="MA3">Mitarbeiter3
<option value="MA4">Mitarbeiter4
</select>
<p>Mitteilungstext</p>
<textarea name="Mitteilung" cols="40" rows="15"></textarea>
<input type="reset" value="Formular löschen">
<input type="Submit" name="Senden" value="Absenden">
</form>
HTML DATEI ENDE
CGI SKRIPT ANFANG
#!/usr/bin/perl
$Sendmail_Prog = "/usr/lib/sendmail";
use CGI;
$query = new CGI;
@names = $query->param;
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$returnhtml = $query->param('return'); # ---> URL für Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
$subject =~ /\s/ /g
if $query->param('Empfaenger') eq 'MA1'{
$mailto = 'Email1@hier.dort'
}
if $query->param('Empfaenger') eq 'MA2'{
$mailto = 'Email2@hier.dort'
}
if $query->param('Empfaenger') eq 'MA3'{
$mailto = 'Email3@hier.dort'
}
if $query->param('Empfaenger') eq 'MA4'{
$mailto = 'Email4@hier.dort'
}
$mailtext = "";
foreach(@names) {
$name = $_;
@values = "";
@values = $query->param($name);
if($name ne "return" && $name ne "subject" && $name ne "delimiter") {
foreach $value (@values) {
$mailtext = $mailtext.$name;
$mailtext = $mailtext.$delimiter;
$mailtext = $mailtext.$value."\n";
}
}
}
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);
print "Location: $returnhtml\n\n";
CGI SKRIPT ENDE
Datum: 20.10.2005-22:05
