Ich hab ein Problemchen mit einem Formular, welches ich zwar abschicken kann … es kommt aber keine Mail an.
Das Formular sieht so aus:
Rückruf-Service
Wir rufen Sie gerne zurück.
Daten:
Name:
Vorname
Rufnummer
Wann können wir Sie erreichen?
Daten:
Die formmail.pl liegt im richtigen Verzeichnis (sonst würde das Formular wohl auch erst gar nicht verschickt)
… und sieht so aus (Pfad sendmail habe ich beim Hoster nachgefragt):
#!/usr/bin/perl
$mailto = „[email protected]“;
$Sendmail_Prog = „/usr/bin/sendmail“;
use CGI;
$query = new CGI;
@names = $query->param;
interne Daten aus den erwarteten hidden-Feldern auslesen:
$delimiter = $query->param(‚delimiter‘); # —> Begrenzerzeichen
$returnhtml = $query->param(‚return‘); # —> Dankeseite
$subject = $query->param(‚subject‘); # —> E-Mail-Subject
Text der E-Mail aus den Formulardaten ermitteln:
$mailtext = „“;
foreach(@names) {
$name = $_;
@values = „“;
@values = $query->param($name);
if($name ne „mailto“ && $name ne „return“
&& $name ne „subject“ && $name ne „delimiter“) {
foreach $value (@values) {
$mailtext = $mailtext.$name;
$mailtext = $mailtext.$delimiter;
$mailtext = $mailtext.$value."\n";
}
}
}
E-Mail versenden:
open(MAIL,"|$Sendmail_Prog -t") ||
print STDERR „Mailprogramm nicht gestartet werden\n“;
print MAIL „To: $mailto\n“;
print MAIL „Subject: $subject\n\n“;
print MAIL „$mailtext\n“;
close(MAIL);
Dankeseite an Browser senden:
print „Location: $returnhtml\n\n“;
Die Rechte habe ich auf 755 gesetzt.
Wie gesagt, das Formular wird abgeschickt, ich bekomme die Dankeseite … aber es kommt nichts an.
Ist das erste Mal, dass ich sowas ausprobiere … ich kenn mich damit überhaupt noch nicht aus.
Der Debugger sagt mir folgendes:
Possible unintended interpolation of @die in string at /html/cgi-bin/formmail.pl line 3.
Name „main::die“ used only once: possible typo at /html/cgi-bin/formmail.pl line 3.
… womit ich leider gar nichts anfangen kann.
Kann mir da jemand helfen? PHP steht mir leider nicht zur Verfügung, darum habe ich mich für diese Möglichkeit entschieden.