Thomas Luger: Formmailer mailt nicht aber sendet Erfolgsseite

Hi,

ich habe den in SelfHTML vorgestellten code verwendet, des weiteren habe ich mich mit meinem Provider ín Verbindung gesetzt um sicherzustellen, daß ich auch den richtigen Pfad zu dem Program sendmail verwende.

Nun wird die Erfolgsseite gesendet (das Skript macht also was!) es währe aber auch nett von dem Skript wenn ich die Informationen zugeschickt bekomme. Ist da jemand da draußen der mir da weiter helfen kann?? ich weiß einfach nicht weiter, für mich liest sich das alles logisch aber ich bin nun kein Experte.

vielen Dank schonmal im Voraus

Thomas Luger

  1. Hallo,
    Ich glaube kaum, dass du das Orginalscript 1:1 übernommen hast, also wäre es ganz hilfreich, wenn du mal den Code postest, sonst kann dir wohl keiner helfen.

    $xNeTworKx.

    --
    Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.
    1. Hallo,
      Ich glaube kaum, dass du das Orginalscript 1:1 übernommen hast, also wäre es ganz hilfreich, wenn du mal den Code postest, sonst kann dir wohl keiner helfen.

      $xNeTworKx.

      »»
       #!/usr/bin/perl -w

      -------> SMTP-Programm zum Versenden der Mail:

      $Sendmail_Prog = "/usr/bin/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);
        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 -i") || 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";

      so, das ist der code.

      wäre klasse wenn mir da jemand helfen kann

      grüße

      Thomas

      1. Ich weis daß ich die Mailadresse direkt in den Perlquellcode stecken soll, zunächst will ich aber das ding zum senden bringen ...

        Hallo,
        Ich glaube kaum, dass du das Orginalscript 1:1 übernommen hast, also wäre es ganz hilfreich, wenn du mal den Code postest, sonst kann dir wohl keiner helfen.

        $xNeTworKx.
        »»
         #!/usr/bin/perl -w

        -------> SMTP-Programm zum Versenden der Mail:

        $Sendmail_Prog = "/usr/bin/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);
          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 -i") || 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";

        so, das ist der code.

        wäre klasse wenn mir da jemand helfen kann

        grüße

        Thomas

      2. Guten Tag,

        $mailto = $query->param('mailto');

        Ersetze doch mal zu Testzwecken diese Zeile durch

        $mailto = "thomas.luger@tu-berlin.de";

        und warte mal ab, ob die Mail ankommt. Vielleicht hilft dir auch ein Blick in error.log weiter.

        mfg Torsten

        --
        Opinions are like assholes: everybody has one.
        ss:| zu:| ls:# fo:| de:[ va:| ch:? n4:& rl:? br:& js:| ie:% fl:( mo:}
        1. Hallo alle zusammen,

          wie komme ich denn an den Errorlog heran???

          MFG

          Thomas

          1. Hi,

            wie komme ich denn an den Errorlog heran???

            Das musst du nicht uns, sondern deinen Provider fragen. Oder hast du Zugriff, nat. nur wenn du den Apache benutzt, auf die httpd.conf?

            Grüße Andres Freund

            --
            ss:) zu:) ls:} fo:) de:] va:) ch:| n4:& rl:° br:^ js:( ie:% fl:( mo:|
            1. Hi,

              Provikder fragen habe ich verstanden, was anach kam must Du mir irgendwie nochmal erklären das war zu kompliziert für mich ...

              gruß

              Thomas