HarryW: error bei sendmail

Hallo

Ich schreibe noch mal, da ich neben dem langzeitigem Problem des Forums, zu dem ich schon einige Hilfe, von ein paar netten Personen, hier gefunden habe, auch noch ein momentanes Problem habe.

Ich habe ein Formular, mit dem man ein Feedback geben (ohne „mailto:“ )kann, erstellt, doch irgend etwas scheint nicht zu funktionieren, doch was?
Das Formular ist hier: http://www.physik1.com/email1 zu finden, doch schickt man es ab, kommt nur die Meldung: Method Not Allowed
Wieso? Bitte helft mir.

Mit freundlichen Grüßen: Harry

Ps: Wie man schon am Thema sieht, denke ich es hat was mit dem Server zu tun, sendmail liegt auf /usr/.../.../.../bla,bla,bla/sendmail , doch was?/usr/.../ , ich nahm an, physik1.com/... , ist das richtig?

  1. Hallo

    Ich schreibe noch mal, da ich neben dem langzeitigem Problem des Forums, zu dem ich schon einige Hilfe, von ein paar netten Personen, hier gefunden habe, auch noch ein momentanes Problem habe.

    Ich habe ein Formular, mit dem man ein Feedback geben (ohne „mailto:“ )kann, erstellt, doch irgend etwas scheint nicht zu funktionieren, doch was?
    Das Formular ist hier: http://www.physik1.com/email1 zu finden, doch schickt man es ab, kommt nur die Meldung: Method Not Allowed
    Wieso? Bitte helft mir.

    Mit freundlichen Grüßen: Harry

    Ps: Wie man schon am Thema sieht, denke ich es hat was mit dem Server zu tun, sendmail liegt

    Bedingt. Ich vermute, dass es daran liegt, dass Du nicht richtig vorgehst:

    1.) /cgi-bin Verzeichnis fuer Script anlegen
    2.) Rechte darauf geben (ausfuehrbar)
    3.) Script braucht auch Rechte

    So auf die schnelle. Ansonsten innerhalb des Scriptes musst Du dann schon richti auf sendmail verweisen. Aber der Fehler kommt eindeutig daher, dass es nicht "CGI"-like ist.

    Ciao Micha

    auf /usr/.../.../.../bla,bla,bla/sendmail , doch was?/usr/.../ , ich nahm an, physik1.com/... , ist das richtig?

    1. Hallo,

      auf /usr/.../.../.../bla,bla,bla/sendmail , doch was?/usr/.../ , ich nahm an, physik1.com/... , ist das richtig?

      /usr/sbin/sendmail is normalerweise üblich

      »»ich nahm an, physik1.com/... , ist das richtig?

      huh, in der She-bang Zeile steht doch auch nicht #!/meinscript/blabla/perl ,sondern meistens  #!/usr/bin/perl

      bei sendmail is das genauso , du zeigst ja damit auf das sendmailprogramm, wie du aufn Perl Interpreter zeigst

      1. Es gibt Möglichkeiten im Script anzeigen zu lassen ob Sendmail geöffnet werden konnte ( ...|| print "Mailprogramm error\n";)

        Hier ein Beispiel

        my $Sendmail_Prog = "/bin/sendmail";
        my $from = "deinemail@provider.de";
        my $mailto = "wohindie@mail.de";
        my $subject = "Dein Betreff";

        open(MAIL,"|$Sendmail_Prog -t") || print "Mailprogramm error\n";
        print MAIL "From: $from\n";
        print MAIL "To: $mailto\n";
        print MAIL "Subject: $subject\n\n";
        print MAIL "Dein Text\n";
        close(MAIL) || print "Fehler beim Mailversenden!";

        Beachte bitte, dass Sendmail sehr unterschiedlich gerootet sein kann. Sehr wichtig sind auch die \ vor @ und der Server muss vor allem Sendmail unterstützen.

        mFg
        Torwächter

    2. Hallo

      Mein Script sieht so aus (da von hier (http://selfaktuell.teamone.de/) übernommen):

      #!/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);
        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 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";

      Habe ich hier irgend etwas vergessen (sendmail und perl adressen stimmen!)?

      Mfg: Harry

      Ps: Scrite können bei mir von überall ausgeführt werden.