Hi!
Habe folgendes Problem: Ich möchte die Daten aus einem Formular via email verschicken und als vcard(outlook) ausgeben.
Habe ein Skript geschrieben, das soweit auch funktioniert, ausser der Tatsache, dass die vcard keinen Inhalt hat. (Fehlermeldung bekomm ich auch keine.
--------
Hier 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;
}
#E-Mail versenden
$Mailprogramm = "/usr/lib/sendmail"; # Pfad zu E-Mailprogramm
$MailSubject = "Formluar-Feedback"; # E-Mail Betreff
$Empfaenger = "xy/@xy.de"; # E-Mail Adresse
$SenderName = $Formular[5]; # Absender
$SenderMail = $Formular[17]; # E-Mail Adresse des Absenders
open(MAIL,"$Mailprogramm -t") die;
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);
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];
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);
------
schon mal danke im vorraus!
jer