[PERL] Daten aus PDF über Perl als Mail verschicken

Fabulicious

Cadet 3rd Year
Registriert
Feb. 2005
Beiträge
36
Hi, ich hab folgendes Problem, ich hab vor kurzem als Webmaster ein Server-System übernommen und sollte einen Bestellmodus modifizieren. Der Bestellmodus lief folgender maßen:

- Der Kunde hat die möglichkeit über den Onlineshop zu bestellen
- oder sich ein PDF mit einem Fax-Bestellformular herunterzuladen

In diesem Falle sprechen wir über das Fax Formular, das als PDF ja normalerweise statisch aufgebaut ist.
In diesem Formular sind so einige Felder die aber auch direkt am PC ausgefüllt werden können, (1) um sie dann auszudrucken oder (2) direkt aus dem PDF (über einen kleinen Button) auch noch alternativ als Mail zu versenden. Doch genau hier entsteht mein Problem.

Ich habe ein Script bei dem ich mir 100% sicher bin das es vom Prinzip her gehen muss, aber wie es halt so is :D geht es trotzdem nicht.

Da ich leider vorallem im PERL recht unbehalfen bin hoffe ich das ihr mir helfen könnt.
BTW: Ich vermute nen Formfehler oder so...

SCRIPT: (orderpdf.pl)
#!/usr/bin/perl

# *** Module einbinden ***

# *** Verzeichnise Server ***

$mail_prog = '/usr/lib/sendmail' ;

# *** Variablen ***

$LOCK_EX = 2;
$LOCK_UN = 8;

# *** Formularinhalte vordefinieren ***

my $empf = "webmaster\@edumedia.de";
my $subj = "Test PDF-Formular senden";
my $sender = "webmaster\@edumedia.de";
my $titel = "Formulardaten aus dem PDF:";

&parse_form();

if( defined($FORM{'subject'}) ) {
$subj = $FORM{'subject'};
delete($FORM{'subject'});
}
if( defined($FORM{'sendto'}) ) {
$empf = $FORM{'sendto'};
delete($FORM{'sendto'});
}
if( defined($FORM{'titel'}) ) {
$titel = $FORM{'titel'};
delete($FORM{'titel'});
}

@keylist = ();
$EMAIL_tables = "";
foreach $key (keys %FORM) { push(@keylist,$key); }
@sortkeylist = sort(@keylist);
foreach $key (@sortkeylist) {
$value = $FORM{$key};
$clkey = $key;
$clkey =~ tr/+/ /;
$clkey =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$clkey =~ s/<!--(.|\n)*-->//g;
$clkey =~ s/<([^>]|\n)*>//g;
$EMAIL_tables .= "$clkey: $value\n\n";
}

&email_order($empf, $subj, $sender, $titel);

print "Content-type: text/html\n\n";
print "Formular wurde gesendet!";

sub email_order {
my $recip = shift;
my $subject = shift;
my $sendemail = shift;
my $titel = shift;
open (MAIL, "|$mail_prog -t");
print MAIL "To: $recip\n";
print MAIL "Reply-to: $sendemail\n";
print MAIL "From: $sendemail\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$titel\n";
print MAIL "==========================\n\n";
print MAIL "$EMAIL_tables";
print MAIL "==========================\n";
print MAIL "\n\n";
close (MAIL);
}

# *** Formulardaten auswerten ***
sub parse_form {
local ($buffer);
# Get the input
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else {
$buffer=$ENV{'QUERY_STRING'};
}

# Split the name-value pairs
@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);

# Un-Webify plus signs and %-encoding
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/<([^>]|\n)*>//g;

$FORM{$name} = $value;
}
}

#!Scriptende

Vielen Dank schonmal im Vorraus

Fab
 
Zurück
Oben