1. Ich habe mir zwar den Text zum Thema "Verschicken von Emails mit Perl" durchgelesen, aber bei mir funktioniert das nicht. Die Nachricht kommt bei mir nicht an, obwohl ich das Beispiel so kopiert habe, wie es da stand. Der Server meldet auch keinen Fehlen. Wer kann mir helfen? Das Script sieht folgendermaßen aus:
#!/usr/bin/perl
if($ENV{'REQUEST_METHOD'} eq 'GET')
{
$Daten = $ENV{'QUERY_STRING'};
}
else
{
read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
}
$i=0;
@namen = ("");
@Formular = ("");
@Formularfelder = split(/&/, $Daten);
foreach $Feld (@Formularfelder)
{
($name, $value) = split(/=/, $Feld);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.\n)*-->//g;
$namen[$i] = $name;
$Formular[$i] = $value;
$i = $i + 1;
}
if (@namen[0] eq "mailto" && @namen[1] eq "subject" && @namen[2] eq "mailfrom" && @namen[3] eq "meldung")
{
$Mailprogramm = "/usr/sbin/sendmail"; # Pfad des Mailprogrammes
$MailSubject = "Testmail";
$Empfaenger = "lordb@online.de";
$SenderName = "LordB";
$SenderMail = "lordb@online.de";
open(MAIL,"$Mailprogramm -t") &mailer;
print MAIL "To: $Empfaenger\n";
print MAIL "From: $SenderMail $SenderName\n";
print MAIL "Subject: $MailSubject\n\n";
print MAIL "LordB FormMailer\n";
print MAIL "-----------------------------------------------------------\n\n";
$max = $i;
for($i=4;$i<=$max;$i++)
{
print MAIL "$namen[$i] : $Formular[$i]\n";
}
close(MAIL);
print "Content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>Danke</TITLE></HEAD>\n";
print "<BODY BGCOLOR=#FFFFFF leftmargin=0 topmargin=170>\n";
print "<layer left=0 top=49% width=100%><FONT SIZE=6><CENTER>\n";
print "To: $Empfaenger \n";
print "From: $SenderName \n";
print "Subject: $MailSubject \n\n";
print @Formular[3],"<p>\n";
print "<A HREF="javascript:history.back()"> Zurück </A>\n";
print "</CENTER></FONT></LAYER></BODY></HTML>\n";
}
else
{
print "Bitte überprüfen sie die Namen der ersten 4 Formularfelder\n";
goto ende;
}
sub mailer
{
print "Mailprogramm konnte nicht ausgeführt werden. Bitte melden ...\n";
goto ende;
}
ende:
2. Ich habe nur den Mailteil in mein Script genommen, bekomme aber nur eine Fehlermeldung. Wenn ich das Script aber offline teste, bekomme ich nur den Fehler, dass der Interpreter das Mailprogramm nicht finden konnt. Was soll ich tun? Hier für ist der CODE:
#!/usr/bin/perl
@Formular = ("test1","test2","name","sebastian");
$Mailprogramm = "/usr/sbin/sendmail";
$MailSubject = "Formluar-Feedback"; # siehe Erläuterung unten
$Empfaenger = "lordb@online.de"; # siehe Erläuterung unten
$SenderName = "LordB"; # siehe Erläuterung unten
$SenderMail = "lordb@bigfoot.de"; # siehe Erläuterung unten
print $SenderMail;
open(MAIL,"$Mailprogramm -t") die;
print MAIL "To: $Empfaenger\n";
print MAIL "From: $SenderMail $SenderName\n";
print MAIL "Subject: $MailSubject\n\n";
$i = 0;
$max = $#Formular;
for($i=0;$i<=$max;$i=$i+2)
{
print MAIL "$Formular[$i]: $Formular[$i+1]\n";
}
close(MAIL);
print "Fertig";
Der Pfad für das Mailprogramm ist aber richtig.
WER KANN MIR HELFEN? Ich weiss, dass man sich erst reinfinden muss, aber ich würde mich auf eine Antwort freuen!