Habe folgendes Problem: Ich benötige ein CGI Skript, das mir die Daten eines Formulars
a) an eine emailadresse sendet und
b) die Daten in einer VCARD-Datei(Outlook) speichert.
Nun habe ich ein Skript geschrieben, nur leider funzt es nicht und ich hab keinerlei Ahnung weshalb nicht!!
Das Skript:
#Formulardaten einlesen
if($ENV{'REQUEST_METHOD'} eq 'GET')
{
$Daten = $ENV{'QUERY_STRING'}
}
else
{
read (STDIN, $daten, $ENV{'CONTENT_LENGTH'});
}
@formularfelder = split (/&/, $daten);
foreach $feld (@formularfelder)
{
($name, $value) = split(/=/, $Feld);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.\n)*-->//g;
$Formular[$i] = $name;
$i = $i + 1;
$Formular[$i] = $value;
$i = $i + 1;
}
Vorbereitung f_r VCARD
$firma = $Formular[1];
$titel = $Formular[3];
$nname = $Formular[5];
$vname = $Formular[7];
$str = $Formular[9];
$post = $Formular[11];
$ort = $Formular[13];
$land = $Formular[15];
$email = $Formular[17];
$telnr = $Formular[19];
$faxnr = $Formular[21];
$name = $Formular[5].$Formular[7]
VCARD erstellen
open (VCARD, ">$name.vcf");
print VCARD "BEGIN:VCARD \n";
print VCARD "VERSION:2.1 \n";
print VCARD "N:$vname;$nname;;$titel \n";
print VCARD "FN:$nname $vname \n";
print VCARD "ORG:$firma \n";
print VCARD "TEL;WORK;VOICE:$telnr \n";
print VCARD "TEL;WORK;FAX:$faxnr \n";
print VCARD "ADR;WORK;ENCODING=QUOTED-PRINTABLE:;;$str;$ort;;$post;$land \n";
print VCARD "LABEL;WORK;ENCODING=QUOTED-PRINTABLE:$str=0D=A$ort $post=0D=0A$land \n";
print VCARD "EMAIL;PREF;INTERNET:$email \n";
print VCARD "END:VCARD";
close (VCARD);
#E-Mail versenden
$Mailprogramm = "/usr/lib/sendmail"; # Pfad zu E-Mailprogramm
$MailSubject = "Formluar-Feedback"; # E-Mail Betreff
$Empfaenger = "jericho_one@gmx.de"; # E-Mail Adresse
$SenderName = $Formular[5]; # Absender
$SenderMail = $Formular[17]; # E-Mail Adresse des Absenders
open(MAIL,"$Mailprogramm -t") print STDERR "E-Mailprogramm konnte aufgrund eines Fehlers nicht gestartet werden";
print MAIL "To: $Empfaenger\n";
print MAIL "From: $SenderMail $SenderName\n";
print MAIL "Subject: $MailSubject\n\n";
$i = 0;
$max = $#Formular;
for($i=0;$i<=$max;$i=$i+2)
{
print MAIL "$Formular[$i]: $Formular[$i+1]\n";
}
close(MAIL);
print "Content-type: text/html\n\n";
print "Done.\n";
Danke schon mal im voraus!