Josef Reichardt: Formmailer... Ich werde noch verrückt..

Hi!

Irgendwie klappt es immer noch nicht, ich kapier das nicht!
Was ist den noch falsch?

send-mail.pl :

use Net::SMTP;
$smtp = Net::SMTP->new('localhost');
$smtp->mail($ENV{USER});
$smtp->to('$mailto');
$smtp->data();
$smtp->datasend("To: $mailto\n");
$smtp->datasend("Subject: $subject\n\n");
$smtp->datasend("$mailtext\n");
$smtp->dataend();
$smtp->quit;
print "Location: $returnhtml\n\n";
if (grep { $mailto eq $_ } @all_mailq) {
my @all_mails = ('webmaster@crusader-mc.de', 'info@crusader-mc.de');
} else {
print header();
print "<h1>Nicht erlaubte Emailadresse!</h1>";
}

Hoffe auf Hilfe....

Josef

  1. Halihallo Josef

    use Net::SMTP;
    $smtp = Net::SMTP->new('localhost');

    $smtp = Net::SMTP->new('localhost') || die 'cannot connect SMTP';

    $smtp->mail($ENV{USER});
    $smtp->to('$mailto');

    $smtp->to($mailto);

    Einfache Quotes verhindern das automatische Auswerten der Ausdrücke => $mailto bleibt '$mailto' und wird nicht durch die E-Mail Adresse ersetzt.

    [...]

    if (grep { $mailto eq $_ } @all_mailq) {
    my @all_mails = ('webmaster@crusader-mc.de', 'info@crusader-mc.de');
    } else {
    print header();
    print "<h1>Nicht erlaubte Emailadresse!</h1>";
    }

    Klar, zuerst Mail senden und dann überprüfen, ob man das darf, was? - Securitycheck gefälligst _vor_ dem senden und nicht danach!

    Was willst du mit dem Konstrukt @all_mails? - Das verwendest du ja gar nicht mehr!?

    Viele Grüsse

    Philipp