Wolfgang Britzlhuber: Formmailer mit Antwortmail CGI/Perl

Ich habe einen Formmailer (Perl) installiert, der zwar eine HTML-Seite als Antwort öffenen kann, aber leider keine Antwortmail an den Absender schickt. Wer weiss Rat?

  1. Hallo Freunde des gehobenen Forumsgenusses,

    Ich habe einen Formmailer (Perl) installiert, der zwar eine HTML-Seite als Antwort öffenen kann, aber leider keine Antwortmail an den Absender schickt. Wer weiss Rat?

    Wer weis, warum du einmal unter CGI und einmal unter Perl postest, keinen Quellcode und keine Fehlerbeschreibung lieferst und die Hilfe nicht gelesen oder nicht beherzigt hast?

    Gruß
    Alexander Brock

    1. Weil ich mich lange nicht mehr mit solchen Dingen beschäftigt habe.

      #!/usr/bin/perl

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

      $Sendmail_Prog = "/usr/lib/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 = "x@yz.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";

      Und welche Befehlszeile muss ich in das HTML-Formular einfügen?

      Hallo Freunde des gehobenen Forumsgenusses,

      Ich habe einen Formmailer (Perl) installiert, der zwar eine HTML-Seite als Antwort öffenen kann, aber leider keine Antwortmail an den Absender schickt. Wer weiss Rat?

      Wer weis, warum du einmal unter CGI und einmal unter Perl postest, keinen Quellcode und keine Fehlerbeschreibung lieferst und die Hilfe nicht gelesen oder nicht beherzigt hast?

      Gruß
      Alexander Brock

      1. Hallo Freunde des gehobenen Forumsgenusses,

        Ich kann kein Perl schreiben (aber ein bischen lesen) aber dein Formmailer lässt sich wunderbar zum Versenden von Spam an hunderte E-Mail-Adressen gleichzeitig verwenden, verwende bitte einen ordentlichen Formmailer:

        http://aktuell.de.selfhtml.org/tippstricks/cgiperl/form-mail/index.htm

        Gruß
        Alexander Brock

      2. Hell-O!

        Hier wird das Script zur potenziellen Spamschleuder:

        $subject = $query->param('subject');      # ---> E-Mail-Subject
        [...]
        print MAIL "Subject: $subject\n\n";

        denn man kann prächtige Dinge da reinschreiben. Zusätzliche Mail-Header sind da noch die harmloseren Geschichten. Es ist und bleibt oberstes Gebot nicht nur bei Perl, dass nichts, was dem Script von außen übermittelt wird, im Script ungeprüft weiter genutzt werden darf, noch nicht mal versteckte Eingabefelder.

        Und welche Befehlszeile muss ich in das HTML-Formular einfügen?

        Du fügst einfach HTML-Code ein, damit der User seine Mailadresse angeben kann. Die Dankesmail schickst du ihm dann via 'Cc: absender@example.org'. Allerdings werden bei entsprechender Konfiguration von sendmail Cc- und Bcc-Header ignoriert (bei meinem Webspace ist das bspw. so). Wenn dem so wäre, müsstest du halt eine separate Mail versenden.

        Allerdings würdest du hiermit dein Formular noch spamanfälliger machen, also rate ich dir, von derartigen Bestätigungsmails Abstand zu halten.

        Siechfred

        --
        Hier könnte Ihre Werbung stehen.
        Das Steuer-Blog | Siechfreds Tagebuch
    2. Hallo Freunde des gehobenen Forumsgenusses,

      Ich habe einen Formmailer (Perl) installiert, der zwar eine HTML-Seite als Antwort öffenen kann, aber leider keine Antwortmail an den Absender schickt. Wer weiss Rat?

      Hi Alex, ich hab das per PHP gemacht. War soweit recht einfach. Siehe mein Posting !!

      Wer weis, warum du einmal unter CGI und einmal unter Perl postest, keinen Quellcode und keine Fehlerbeschreibung lieferst und die Hilfe nicht gelesen oder nicht beherzigt hast?

      Gruß
      Alexander Brock