E-Mail Formular funktioniert nicht und ich komme nicht weiter

  • ich habe ein e-mail formular und blicke langsam gar nicht mehr durch. ich krieg
    die krise, weil es einfach nicht funktioniert und ich langsam am ende bin, hoffe
    ihr könnt mir helfen. ich bin für jede hife jetzt schon dankbar für weitere fragen
    stehe ich bereit.


    hier mein mail formular:
    <html>
    <head>
    <title>Contemporary-Designers</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body background="images/navi03.gif" bgcolor="EDEFEB">
    <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td></td>
    <td><img src="images/navi10.gif" border="0"></td>
    <td><img src="images/navi10.gif" border="0"></td>
    </tr>
    <tr>
    <td></td>
    <td><img src="images/navi10.gif" border="0"></td>
    <td><img src="images/navi10.gif" border="0"></td>
    </tr>
    <tr>
    <td width="20"> </td>
    <td>
    <center>
    <form action="cgi-bin/mailmanager.pl" method="post">
    <input type="hidden" name="mailto" value="info@contemporary-designers.de">
    <input type="hidden" name="return" value="bestaetigung.htm">
    <input type="hidden" name="delimiter" value=": ">
    <input type="hidden" name="subject" value="Contemporary-Designers Mail-Formular">
    <table border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td>
    <font face="Arial" size="2" color="666E73">
    Name:<br>
    <input type="text" size="24" maxlength="100" name="name">
    </font>
    </td>
    <td>
    <font face="Arial" size="2" color="666E73">


    </font>
    </td>
    <td>
    <font face="Arial" size="2" color="666E73">
    E-Mail:<br>
    <input type="text" size="24" maxlength="1000" name="mail">
    </font>
    </td>
    </tr>
    </table>
    <table border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td>
    <font face="Arial" size="2" color="666E73">
    <br>
    <textarea name="text" rows="5" cols="40" wrap="virtual"></textarea>
    </font>
    </td>
    </tr>
    </table>
    <font face="Arial" size="2" color="666E73"></font>
    <table border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td align="center" valign="middle"> </td>
    <td><img src="images/navi10.gif" border="0"></td>
    <td align="center" valign="middle"> </td>
    </tr>
    <tr>
    <td align="center" valign="middle">
    <font face="Arial" size="2" color="666E73">
    <input name="send" type="submit" value="Abschicken">
    </font>
    </td>
    <td>
    <font face="Arial" size="2" color="666E73">


    </font>
    </td>
    <td align="center" valign="middle">
    <font face="Arial" size="2" color="666E73">
    <input name="reset" type="reset" value=" Löschen ">
    </font>
    </td>
    </tr>
    </table>
    </form>
    </center>
    </td>
    <td> </td>
    </tr>
    </table>
    </body>
    </html>



    und hier meine mailmanager.pl:
    #!/usr/bin/perl


    # -------> SMTP-Programm zum Versenden der Mail:
    $Sendmail_Prog = "/usr/sbin/sendmail";


    # -------> Modul für CGI-Scripts einbinden:
    use CGI;


    # -------> Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden:
    $query = new CGI;
    @names = $query->param;


    # -------> interne Daten aus den erwarteten hidden-Feldern auslesen:
    $delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
    $mailto = $query->param('mailto'); # ---> Empfängeradresse
    $returnhtml = $query->param('return'); # ---> URL für 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);
    $mailto = "info@contemporary-designers.de";
    if($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 konnte 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";



    folgende meldung kommt immer:


    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, webmaster@contemporary-designers.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.


    More information about this error may be available in the server error log.

  • Ich habe das jetzt nur überflogen und nicht genau angeschaut.
    Aber hast Du die mailmanager.pl auch im ASCII-Modus hochgeladen?
    Das ist eine klassische Fehlerquelle bei Perl-Scripten, die meist zu einem Internal Server Error führt.


    Carsten

  • Ich weis nicht wie weit du dich mit UNIX auskennst, deshalb hier ein paar Kommentare von denen ich denke, daß sie helfen könnten wenn du's nicht so genau kennst.
    1. Die Ausführrechte an der Datei stimmen? Der Webserver ist nämlich auch ein Benutzer und benötigt zum Ausführen für "Others" r-x.
    2. Die Groß- und Kleinschreibung von Dateinamen ist unter UNIX auch von Bedeutung.
    3. Könnte es auch sein dass du "/cgi-bin/mailmanager.pl" schreiben musst (mit Slash, bin mir nicht sicher)?

  • warum überhaupt so kompliziert? mach das doch einfach mit PHP da gibts so nen Trouble nicht...

  • @ anticro:


    1. die audführungsrechte sind bei mir bei 777, aber wie mache ich das mit r-x??
    2. hab alles überall kleingeschrieben
    3. probiere ich gleich mal aus



    @ symbian:


    kenne mich mit php noch nicht so aus...

  • r=4, w=2, x=1
    1.Zahl = user
    2. Zahl = group
    3. Zahl = others
    Also:
    777 = rwxrwxrwx
    Damit hat die Datei die nötigen Rechte, daran kann's also nicht liegen.

  • Zitat

    Original geschrieben von anticro
    [...]
    777 = rwxrwxrwx
    Damit hat die Datei die nötigen Rechte, daran kann's also nicht liegen.


    Das ist falsch. Die meisten Webserver dürften mittlerweile hoffentlich so konfiguriert sein das sie keine Scripte ausführen die 777 haben.


    Versuchs mal mit 755 Doubletaker.


    ~~~ root ~~~

  • Zitat

    Original geschrieben von root
    Das ist falsch. Die meisten Webserver dürften mittlerweile hoffentlich so konfiguriert sein das sie keine Scripte ausführen die 777 haben.


    Versuchs mal mit 755 Doubletaker.


    ~~~ root ~~~


    Das weis ich nicht hundertprozentig, nutze (noch) keinen Webspace, nur meinen lokalen Server...
    Doubletaker kennt sich anscheinend nicht wirklich mit UNIX & Co. aus. Also hier der Befehl wie du die Rechte in 755 änderst:


    chmod 755 mailmanager.pl


    P.S.: Wenn der Server kein Schreibrecht auf die Datei haben darf, darf's auch vielleicht sonst niemand. Also im Zweifelsfall auch noch 555 probieren.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!