Alexander Rebholz: formmailer Probleme

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;

  1. 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

  2. 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