Patric Steffen: (Provider) Mails werden nicht immer versendet

Beitrag lesen

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);
}