Matti Maekitalo: Formular per EMail versenden.......

Beitrag lesen

use Mosche;

Hallo!

Ich bins wieder...
Ich habs immer noch nicht ganz verstanden!
Was mache ich falsch?
Es kommt immer Fehler 500!

Da hilft dir dein Logfile oder, wenn du am Anfang deines Scriptes:

use CGI::Carp qw(fatalsToBrowser);

schreibst.

<font face="colonna mt,arial" size="5">

Warum mixt du durch das gesamte Formular HTML-Style (*böse*) mit CSS? Verwende nur noch CSS!

#!/usr/bin/perl

$Sendmail_Prog = "/usr/lib/sendmail";

Das brauchst du nicht, wenn du Net::SMTP verwendest.

use Net::SMTP;
$smtp = Net::SMTP->new('mailhost');
$smtp->mail($ENV{USER});
$smtp->to('mailto');
$smtp->data();
$smtp->datasend("To: mailto\n");
$smtp->datasend("Subject: subject\n");
$smtp->datasend("mailtext\n");
$smtp->dataend();

$smtp->quit;

Das hast du aus meinem Posting einfach rauskopiert. Setze doch mal passende Werte für 'mailhost' (zB 'localhost'), 'mailto' (dein $mailto _nach_ der Prüfung (s.u.)), subject und mailtext ein!

if (grep { $mailto eq $_ } @all_mailq) {
my @all_mails = ('webmaster@crusader-mc.de', 'info@crusader-mc.de.de');

Die Definition des Arrays muss vor der Überprüfung seiner Werte geschehen! Einfach Zeilen umdrehen.

open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

Lösche diesen Code, er ist nicht sinnvoll, wenn du Net::SMTP benutzen willst.

print "<h1>Nicht erlaubte Emailadresse!</h1>";

davor fehlt  die Ausgabe eines Content-Types:
print header(); # vor der ersten print anweisung!

use Tschoe qw(Matti);

--
$a=n(1001010);print chr($a+=$_)for(0,43,-2,1,-84,65,13,1,5,
-12,-3,13,-82,48,21,13,-6,-76,72,-7,2,8,-6,13,-104);sub n{
$b=0;$_=0;for($c=length$_[0];$c;--$c){$_+=_($b)if substr$_
[0],$c-1,1;$b++;}$_}sub _{($d)=@_;for($e=1;$d--;$e*=2){}$e}