Hallo,
habe folgende(s) Problem(e):
1. Ich habe eine Site bei Puretec gehostet.
2. Unter dieser Site benutze ich mehrere Scripts, die eMails via sendmail (Linux) verschicken. Die Mails werden korrekt versendet, falls ich eine feste eMail-Adresse als Adressaten hardcodiert angebe. Sobald ich allerdings als Adressaten den Inhalt eines Formularfeldes angebe (mittels param('eMail') z.B.), so tritt es häufig auf, dass die eMails nicht bei diesem eintreffen. Puretec gewährt bisher leider keinen Einblick in Ihre Mail-Server-Logs, so dass ich die Ursache dieses Fehlers bis jetzt nicht finden konnte.
Hatte jemand schon einmal solche Probleme mit Puretec? Oder liegt es vielleicht daran, dass ich fehlerhaft programmiert habe? Bin für jeden Tip dankbar.
Gruß
Patric
Anbei der Code:
1. Auszug aus einem Script, dass ein Formular anzeigt, und die Funktion aufruft, welche eine eMail verschicken soll.
a) Anzeige des Formulars:
print startform({-name=>'recommendation', -action=>'recommendation.pl', -method=>'POST'}),
table({-width=>$c{common}{width}, border=>'0', -align=>'left'},
...
td(textfield({-name=>'eMailAdressat', -size=>'34', -maxlength=>'40', -override=>1}))),
...
Tr( td(submit({-name=>'submit', -value=>'Weiterempfehlen'})),
td(reset({-name=>'Eingaben Verwerfen', -value=>'Verwerfen'}))),
...
),
endform(),
end_html();
b) Aufruf der Funktion zum Versenden einer eMail:
sub prepareRecommendation() {
my($error, $contents);
$error = 0;
$contents = "String, welcher den Text der eMail enthält\n\n".
$error = Schulkameraden::IOFunc::sendMail( "Absender-Account@domain.de",
param('eMailAdressat'),
"Betreff",
$contents);
return($error);
}
2. Funktion sendMail, welche sendmail aufruft
Dieses Script versendet eine eMail. Text, Betreff, Absender, Adressat sind Übergabeparameter
sub sendMail {
my($sender, $addressee, $subject, $contents);
$sender = $_[0];
$addressee = $_[1];
$subject = $_[2];
$contents = $_[3];
# Ausführen von sendmail
open(MAIL, "$c{dir}{mailprog} $addressee") or die "Fehler beim Versenden der eMail: $!";
print MAIL "From: $sender\n",
"Reply-To: $sender\n",
"To: $addressee\n",
"Subject: $subject\n\n",
$contents;
close (MAIL);
return(0);
}