formmailer Probleme
Alexander Rebholz
- perl
0 Cheatah0 Hellmut Alde
Hallo!
Als absoluter Perl Anfänger habe ich folgendes Problem:
Wenn ich unten aufgeführten Code Online stelle erhalte ich zwar eine Mail aber sie enthält keinen Text. Kann mir da jemand bitte weiterhelfen?
(Ich hab das script um den html-Teil gekürzt)
TIA, Alex
#!/usr/bin/perl
print "Content-type: text/html\n\n";
if($ENV{'REQUEST_METHOD'} eq 'GET')
{
$Daten = $ENV{'QUERY_STRING'}
}
else
{
read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
}
@Felder = split(/&/, $Daten);
($feld, $nachname) = split(/=/, $Felder[0]);
($feld, $vorname) = split(/=/, $Felder[1]);
($feld, $adresse) = split(/=/, $Felder[2]);
($feld, $ort) = split(/=/, $Felder[3]);
($feld, $plz) = split(/=/, $Felder[4]);
($feld, $land) = split(/=/, $Felder[5]);
($feld, $anzahl) = split(/=/, $Felder[6]);
***** Hier steht jede Menge print 'HTML CODE'; ************
$mailprog = "/usr/lib/sendmail";
$recipient = 'info@monkey-design.de';
open (MAIL, "$mailprog $recipient");
print MAIL " \n";
print MAIL "Von: $vorname $nachname\n";
print MAIL "Betreff: Bestellung Excentric\n";
print MAIL "Adresse: $adresse\n";
print MAIL "Ort: $plz $ort\n";
print MAIL "Land: $land\n";
print MAIL "Anzahl: $anzahl\n";
print MAIL " \n";
close;
Hi,
»» if($ENV{'REQUEST_METHOD'} eq 'GET')
[...]
($feld, $anzahl) = split(/=/, $Felder[6]);
komplett streichen, ersetzen durch:
#!/usr/bin/perl -w
use strict;
use CGI ':standard';
Die Parameter erhälst Du z.B. mit param('nachname').
open (MAIL, "$mailprog $recipient");
print MAIL " \n";
Willst Du keinen Header ausgeben? Nicht mal ein Subject? Der Header wird übrigens durch eine _Leer_zeile beendet, nicht durch eine Leer_zeichen_zeile.
Cheatah
Hallo Alex!
$mailprog = "/usr/lib/sendmail";
$recipient = 'info@monkey-design.de';
open (MAIL, "$mailprog $recipient");print MAIL " \n";
print MAIL "Von: $vorname $nachname\n";
print MAIL "Betreff: Bestellung Excentric\n";
print MAIL "Adresse: $adresse\n";
print MAIL "Ort: $plz $ort\n";
print MAIL "Land: $land\n";
print MAIL "Anzahl: $anzahl\n";
print MAIL " \n";close;
ich mache es so:
open(MAIL,"$mailprog -t") die "Couldn't find Mailprogram: $!";
print MAIL "To: $recipient\n";
print MAIL "From: $MailAdressFrom\n";
print MAIL "Subject: Bestellung Excentric\n\n";
print MAIL "<Der ganze restliche Text>\n";
close MAIL;
hoffentlich hilfts.
CIAO Hellmut