mail() Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mail() Funktion

    Hallo,

    ich habe, mit der Mailclass unter http://www.koehntopp.de/php/mail.html oder anderen Lösungen, Probleme mit abstürzen des php.exe Interpreters mit den Meldungen "failed read" & "failed write", wenn ich eine Datei anhängen bzw. per mail() Funktion verschicken will...
    Die Konfiguration ist Standard WAMP (Windows, Apache, MySQL, PHP) alles jeweils die letzten stable Realeases...

    Irgendeiner eine Idee woran es liegen könnte?

    Mails bitte an mcsolingen@web.de

    Gruß
    David

  • #2
    Hast dieses Skript schon probiert?
    http://www.phpwizard.net/resources/p...etty/mail.php3

    Betreibst Du PHP als CGI?

    Steht was auffälliges in den Apache Log Files?

    Kommentar


    • #3
      Hallo,

      PHP ist als CGI installiert!

      Error LOG:

      [Thu Jan 31 14:32:23 2002] [error] [client 127.0.0.1] (2)No such file or directory: script not found or unable to stat: c:/programme/apache/cgi-bin/mini_logger.cgi
      [Thu Jan 31 14:32:40 2002] [error] [client 127.0.0.1] Premature end of script headers: c:/programme/apache/php/php.exe

      Das angegebene Skript habe ich auch getestet...

      Kurioserweise läuft unter Linux alles prima!

      Gruß
      David

      Kommentar


      • #4
        Wenns unter Linux läuft ist das nicht kurios, nein ganz bestimmt nicht.

        Die beiden Meldungen hängen wohl nicht zusammen oder?
        [Thu Jan 31 14:32:23 2002] [error] [client 127.0.0.1] (2)No such file or directory: script not found or unable to stat: c:/programme/apache/cgi-bin/mini_logger.cgi

        ist ja 17 Sekunden Differenz

        Thu Jan 31 14:32:40 2002] [error] [client 127.0.0.1] Premature end of script headers: c:/programme/apache/php/php.exe

        Hast Du die Möglichkeit PHP als Modul zu aktivieren?

        Kommentar


        • #5
          Hallo,

          leider nein...

          BTW: Wo bekomme ich die Mdulversion von PHP überhaupt für win32 her?

          Gruß
          David

          Kommentar


          • #6
            hmm,

            naja von http://www.php.net , woher sonst ?

            Kommentar


            • #7
              Einsatz unterscheidet sich eigentlich nur durch die Eintragungen in der httpd.conf. Anweisungen stehen im PHP install.txt
              Code:
              Web server configuration
              ========================
              
               Installing PHP on Windows with Apache 1.3.x
              
                There are two ways to set up PHP to work with Apache 1.3.x
                on Windows. One is to use the CGI binary (php.exe),
                the other is to use the Apache module dll. In either case
                you need to stop the Apache server, and edit your
                srm.conf or httpd.conf to configure Apache to work with PHP.
              
                Although there can be a few variations of configuring PHP
                under Apache, these are simple enough to be used by the
                newcomer. Please consult the Apache Docs for further
                configuration directives.
              
                If you unzipped the PHP package to C:\PHP\ as desribed
                above, you need to insert these lines to your Apache conf
                file to set up the CGI binary:
              
                 ScriptAlias /php/ "c:/php/"
                 AddType application/x-httpd-php .php
                 Action application/x-httpd-php "/php/php.exe"
              
                [b]If you would like to use PHP as a module in Apache,
                you should move php4ts.dll to the windows/system (for Windows 9x/Me)
                or winnt/system32 (for Windows NT/2000) directory, overwriting any
                older file. Then you should add the following two lines to you Apache
                conf file:
              
                 LoadModule php4_module c:/php/sapi/php4apache.dll
                 AddType application/x-httpd-php .php
              [/b]
              Simmt der Pfad?
              c:/programme/apache/php/php.exe

              Kommentar


              • #8
                Performance und Sicherheit sprechen für die Modulvariante.

                Kommentar


                • #9
                  Hallo,

                  der Pfad zu PHP stimmt (andere Skripte werden auch ausgeführt)!

                  Die Modulversion kann nicht installiert werden...

                  Gruß
                  David

                  Kommentar


                  • #10
                    Wo werden die Errors angezeigt?

                    Im Browser, kannst Du sie bitte Posten?
                    Bezieht sich Error auf eine Zeile im Skript?
                    Wenn ja kannst Du den interessanten Skriptteil posten?
                    Passiert das bei jedem Attachement oder nur großen Attachements?
                    Kannst Du Mails ohne erfolgreich Attachements absetzen?
                    Wie lange dauert es von Aufruf bis Fehlermeldung erscheint? Unmittelbar oder 20 Sekunden?

                    Welches Betriebsystem?
                    Genug Systemressourcen?
                    Noch genügend Platz auf der Platte frei?

                    [Editiert von hand am 31-01-2002 um 15:39]

                    Kommentar


                    • #11
                      Hilft Dir das etwas?
                      http://httpd.apache.org/docs/misc/FA...script-headers

                      Kommentar


                      • #12
                        Hallo,

                        OS: Windows 2000 SP2
                        Resourcen RAM, CPU, HDD genügend vorhanden!

                        Fehler im Skript tritt bei allen Dateigrößen auf!

                        Fehler tritt auf der Oberfläche vom win2k auf

                        1. PopUp Fenster mit der Fehlermeldung "php.exe - Fehler in Anwendung" Die Anweisung in XXX verweist auf YYY Der Vorgang "written" konnte nicht auf dem_ Speicher durchgeführt werden.

                        OK CANCEL

                        dannach kommt sofort

                        2. PopUp Fenster mit der Fehlermeldung "php.exe - Fehler in Anwendung" Die Anweisung in XXX verweist auf YYY Der Vorgang "read" konnte nicht auf dem_ Speicher durchgeführt werden.

                        OK CANCEL

                        3. Im Browser kommt die 500er Meldung


                        Skriptauszug:

                        if( $datei && $datei != "none" ) {

                        /* Lese die temporaere Datei, die der Benutzer hochgeladen hat aus */
                        $datei_content = fread(fopen($datei,"r"),filesize($datei));

                        /* Codiere Datei ins BASE64-Format */
                        $datei_content = chunk_split(base64_encode($datei_content));

                        /* Generiere einen Boundary */
                        $boundary = strtoupper(md5(uniqid(time())));

                        /* Beginne den Mail-Header mit MIME-Mail-Header */
                        $mail_header = "MIME-Version: 1.0";
                        $mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
                        $mail_header .= "\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";

                        /* Hier faengt der normale Mail-Text an */
                        $mail_header .= "\n--$boundary";
                        $mail_header .= "\nContent-Type: text/plain";
                        $mail_header .= "\nContent-Transfer-Encoding: 8bit";
                        $mail_header .= "\n\n$message";

                        /* Hier faengt der Datei-Anhang an */
                        $mail_header .= "\n--$boundary";
                        $mail_header .= "\nContent-Type: application/octetstream; name=\"$datei_name\"";
                        /* Codierung immer BASE64 */
                        $mail_header .= "\nContent-Transfer-Encoding: base64";
                        $mail_header .= "\nContent-Disposition: attachment; filename=\"$datei_name\"";
                        $mail_header .= "\n\n$datei_content";

                        /* Gibt das Ende der eMail aus */
                        $mail_header .= "\n--$boundary--";
                        }
                        /* Sende eMail und gebe Fehler bzw. Bestaetigung aus */
                        # if(mail($an,$subject,"",$mail_header)) echo "Die eMail mit dem Betreff ".htmlentities($subject)." wurde an ".htmlentities($an)." gesendet.";
                        # else echo "Es ist ein Fehler beim senden der eMail aufgetreten.";


                        Gruß
                        David

                        Kommentar


                        • #13
                          Der Minmetyp für ausführbare Dateien sollte
                          "application/octet-stream" lauten.

                          Welche Filetypen versendest Du?
                          http://selfhtml.teamone.de/diverses/...htm#uebersicht

                          Funktionieren andere PHP Skripte?
                          Zum Beispiel dieses?
                          <?
                          phpinfo();
                          ?>

                          Kannst Du Mails ohne Attachements erfolgreich absetzen?

                          Kommentar


                          • #14
                            http://httpd.apache.org/docs/misc/FA...script-headers
                            What does it mean when my CGIs fail with "Premature end of script headers"?

                            The most common cause of this problem is the script dying before sending the complete set of headers, or possibly any at all, to the server. To see if this is the case, try running the script standalone from an interactive session, rather than as a script under the server. If you get error messages, this is almost certainly the cause of the "premature end of script headers" message. Even if the CGI runs fine from the command line, remember that the environment and permissions may be different when running under the web server. The CGI can only access resources allowed for the User and Group specified in your Apache configuration. In addition, the environment will not be the same as the one provided on the command line, but it can be adjusted using the directives provided by mod_env.

                            Kommentar


                            • #15
                              Hallo,

                              ich versende mit dem Skript alles mögliche (JPGs, EXE....)

                              Die MIME Types sind glaube ich nicht da Problem, sondern irgendwie das Dateihandling unter win2k...

                              Mails ohne Anhang sind kein Problem....

                              Wie schon gesagt: ALLES läuft bis auf das versenden von Dateianhängen *verzweifel*

                              Gruß
                              David

                              [Editiert von xRuBiCoNx am 31-01-2002 um 16:55]

                              Kommentar

                              Lädt...
                              X