Alex: Automatische Mailfunktion mit CGI auf lokalen Apache Server

Hallo,

seit einigen Tagen versuche ich die Inhalte eines HTML-Formulars über ein CGI-Skript mir zu Testzwecken zu mailen.

-Als lokalen Server benutze ich den neusten Apache.
-Habe auch in der config datei ..CGI freigegeben.
-Die PL Dateien befinden sich alle in der cgi-bin
-Das CGI-Skript ruft Sendmail auf
-Innerhalb der CGI Datei ist als empfänger eine GMX-Adresse angegeben

hier mein CGI-Skript:
#!/usr/local/bin/perl

mailsend.pl

$mailer = "/usr/sbin/sendmail -t";
$valist = "";

Get the input and strip off all unwanted characters

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
$temp = $buffer;
$temp =~ s/+/ /g;
$temp =~ s/%([0-9|A-F]{2})/pack(C,hex($1))/eg;

Store the matching name and value pairs

foreach (split(/&/,$temp))
{
 ($NAM, $VAL) = split(/=/, $_);
 $DATA{$NAM} = $VAL;
 $valist .= "$NAM:$VAL\n";
}

Grab necessary variables

$sendto = 'meineadresse@gmx.de';   # hier steht meine Adresse
$subject = $DATA{'subject'};
$response = $DATA{'response'};
$user_email = $DATA{'user_email'};
$user_name = $DATA{'user_name'};

Send mail to $recipient

open (MAIL, "|$mailer") || die "Can't open $mailprog!\n";
print MAIL "Subject: $subject\n";
print MAIL "From: $user_email ($user_name)\n";
print MAIL "To: $sendto\n";
print MAIL "\n";
print MAIL "$valist";
print MAIL "\n";
print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}\n";
close (MAIL);

Print the response

print "Content-type:text/html\n\n";
print "<HTML><BODY><TITLE>Thank you</TITLE>";
print "<FONT SIZE=+2>$response</FONT>";
print "</BODY></HTML>";

Wenn ich nun das Skript aufrufe, kommt keine Fehlermeldung.

  • Aber dummerweise auch keine E-Mail.!!!

Woran kann das liegen??

Bin für jeden Hinweis sehr dankbar.

  1. hallo,

    -Als lokalen Server benutze ich den neusten Apache.

    Es spielt ja keine Rolle, aber welcher genau ist es und welches Betriebssystem benutzt du? Der Apache hat ansonst mit dem geschilderten Problem nichts zu tun.

    -Habe auch in der config datei ..CGI freigegeben.

    Welche "config datei" meinst du, und was bedeutet "freigegeben"?

    -Die PL Dateien befinden sich alle in der cgi-bin

    Was sind "PL Dateien", und was weiß eventuell dein Server davon, wie er damit umgehen soll?

    -Das CGI-Skript ruft Sendmail auf

    Achso. Ist sendmail denn vorhanden?

    Woran kann das liegen?

    An einer fehlerhaften sendmail-Konfiguration.

    Grüße aus Berlin

    Christoph S.

    1. morgens,

      Woran kann das liegen?
      An einer fehlerhaften sendmail-Konfiguration.

      "fehlerhaft" bedeutet, daß du möglicherweise falsche Erwartungen an dein saendmail knüpfst. Das funktioniert recht gut, wenn du dein eigener Provider bist. Wenn du das nicht bist, solltest du besser nicht versuchen, einen eigenen mail-Service so zu etablieren, daß er tatsächlich über das Internet mails versenden kann.

      Grüße aus Berlin

      Christoph S.

      1. /2.Versuch!!
        Danke für die schnelle Antwort.

        Welche "config datei" meinst du, und was bedeutet "freigegeben"?

        ich meinte damit die httpd.conf
        darin habe ich in der Zeile "AddHandler cgi-script .cgi" das '#' gelöscht und somit CGI freigeschaltet!!

        Was sind "PL Dateien", und was weiß eventuell dein Server davon, wie er damit umgehen soll?

        Denke schon !!
        denn der Server verarbeitet das script ja schon !!
        bekomme eine Bestätigung "thank you" --> siehe CGI-Skrip

        Achso. Ist sendmail denn vorhanden?

        wie kann ich das nachschauen??

        An einer fehlerhaften sendmail-Konfiguration.

        wo kann man das feststellen?

        kennst du denn einen kostenlosen Provider der CGI unterstützt?

        • brauche es nun zu Testzwecke!

        Gruß aus München Alex

        1. hallo Alex,

          ich meinte damit die httpd.conf
          darin habe ich in der Zeile "AddHandler cgi-script .cgi" das '#' gelöscht und somit CGI freigeschaltet!

          Ja, aber nur ".cgi", und keineswegs ".pl", das mußt du dort auch noch angeben.

          denn der Server verarbeitet das script ja schon !
          bekomme eine Bestätigung "thank you" --> siehe CGI-Skrip

          Na gut, wenn du das meinst ...

          Achso. Ist sendmail denn vorhanden?
          wie kann ich das nachschauen?

          Das hängt von deinem Betriebssystem ab bzw. von der Art, wie du es installiert hast.

          An einer fehlerhaften sendmail-Konfiguration.
          wo kann man das feststellen?

          Nachlesen bitte bei http://www.sendmail.org/

          kennst du denn einen kostenlosen Provider der CGI unterstützt?

          • brauche es nun zu Testzwecke!

          Schau mal in die Liste unter http://aktuell.de.selfhtml.org/links/provider.htm

          Grüße aus Berlin

          Christoph S.

          1. Hi Christoph,

            bin am verzweifeln....

            Nun habe einen kostenlosen Provider gefunden das CGI unterstützt.

            habe auch das script einfach umbenannt als CGI.

            Wenn ich nun das Skript aufrufe bekomme ich weiterhin die Bestätigung das es verarbeitet worden ist. ("Thank you")

            Aber keine MAIL!!!

            Kannst es ja mal probieren!!

            hier der Link:
            http://earth.prohosting.com/ali19799/cgi-bin/mailsend.cgi

            das HTML-File
            http://earth.prohosting.com/ali19799/CGI-Test.htm

            Wie kann das sein??

            Gibt es CGI-Befehle mit denen ich genaue Rückmeldungen über sendmail bekommen kann?

            Gruß aus München
            Alex

    2. Danke für die schnelle Antwort.

      Welche "config datei" meinst du, und was bedeutet "freigegeben"?

      ich meine damit die httpd.conf
      darin habe ich in der  - Zeile das '#' gelöcht und somit CGI freigeschaltet!!

      Was sind "PL Dateien", und was weiß eventuell dein Server davon, wie er damit umgehen soll?

      Denke schon !!
      denn verarbeiten der server das ja schon !!
      bekomme eine bestätigung das die mail abgeschickt wird.
      "thank you" --> siehe CGI-Skrip

      Achso. Ist sendmail denn vorhanden?

      wie kann ich das nachschauen??

      An einer fehlerhaften sendmail-Konfiguration.

      wo kann man das feststellen?

      kennst du denn einen kostenlosen Provider der CGI unterstützt?

      • brauche es nun zu Testzwecke!

      Gruß aus München Alex