Mailfunktion ergibt parse error

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

  • Mailfunktion ergibt parse error

    Aloah

    Ich hab mal wieder ein kleines Problem mit einem Script. Es geht darum in einer Schleife zu prüfen ob eine Mail schon versendet wurde, und wenn nicht dieses zu tun. Soweit so gut. Ich habe nur das Problem, daß es mir einen Parse Error ausgibt sobald er die Mail verschicken will.
    Folgender Code findet Anwendung

    PHP-Code:
    mail($empfaenger"Ich bin ein Betreff"$mailtext$header); 
    Wenn ich stattdessen schreibe:

    PHP-Code:
    if (mail($empfaenger"Ich bin ein Betreff"$mailtext$header)) {} 
    dann funktioniert es. Dann habe ich allerdings das problem, daß es ewig dauert bis die Seite aus der das Script aufgerufen wird angezeigt wird, da ja immer erst gewartet wird, bis alle Mails weg sind.
    Als Mailserver habe ich den Argosoft Mailserver laufen (die Freewareversion) mit dem ich eigentlich ganz zufrieden bin.
    Wieso funktioniert das erste Beispiel nicht ? Es ist ja so eigentlich offiziell dokumentiert. Wäre nett, wenn sich einer erbarmen könnte

    Gruss
    Glow

  • #2
    sehe im moment keinen grund, warum der erste code nicht ausgeführt werden sollte. aber glaube auch nicht, dass das dein code ist.

    da ja immer erst gewartet wird, bis alle Mails weg sind.
    Dann solltest du dir mal gedanken drüber machen, wie PHP funktioniert. Die seite wird wohl kaum eher ausgegeben, als sie geparst ist

    Kommentar


    • #3
      Fehlermeldung von dem Parse Error?

      Kommentar


      • #4
        ... und den original code-ausschnitt

        Kommentar


        • #5
          Hi

          der Code ist zu 99% identisch, habe nur ein paar variablen getauscht, admit es übersichtlicher bleibt. Ausserdem ist ja die Frage, wieso er nur ausgeführt wird, wenn die If Anweisung dabeisteht.
          Ich dachte eigentlich, daß man, wenn man die If Anweisung weglässt, das Script dazubringt einfach weiterzuarbeiten, nachdem es den Mailbefehl abgesetzt hat (Also die Mails quasi im Hintergrund versand werden und in der Zeit das Script schon mal weiterläuft).

          Leider ist die Parsefehlermeldung auch nicht sonderlich hilfreich:

          Parse error: parse error in C:\html\mail.php on line 90

          Gruss
          Glow

          Kommentar


          • #6
            ja....

            aber ein paar passagen code wären evtl. net schlecht...
            verschickst du eine text oder html mail ?
            poste bitte etwas mehr.
            -> It`s good to be bad! <-

            http://de.php.net
            http://php-faq.de
            http://www.schattenbaum.net
            http://www.dreamcodes.com

            Kommentar


            • #7
              Parse error: parse error in C:\html\mail.php on line 90
              Fehler in Zeile 90, und du postest nur nen Pseudoquelltext? Wie soll mal da helfen.

              Kommentar


              • #8
                Ok, auch wenn ich nicht glaube das es viel bringt (da es mit dem if ja funktioniert):

                PHP-Code:
                <?php

                $user1
                =file("data/users/testuser");

                $vvn=base64_decode($user1[1]);
                $vnn=base64_decode($user1[0]);
                $vst=base64_decode($user1[2]);
                $vhn=base64_decode($user1[3]);
                $vpl=base64_decode($user1[4]);
                $vor=base64_decode($user1[5]);
                $vem=base64_decode($user1[9]);

                $header="Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";

                $mailverk="<html>";
                $mailverk.="<br>";
                $mailverk.="<p><b><font size=\"4\" face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#000000\">Rundschreiben</font></b>";
                $mailverk.="<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#000000\">";
                $mailverk.="<br>";
                $mailverk.="<br>";
                $mailverk.="<br>";
                $mailverk.="Dies ist eine Testmail.";
                $mailverk.="<br>";
                $mailverk.="<br>";
                $mailverk.="$vvn $vnn<br>";
                $mailverk.="$vst $vhn<br>";
                $mailverk.="$vpl $vor<br>";
                $mailverk.="<br>";
                $mailverk.="$vem";
                $mailverk.="<br>";
                $mailverk.="<br>";
                $mailverk.="<br>Ihre Daten im Überblick.";
                $mailverk.="<br>";
                $mailverk.="<br>";
                $mailverk.="<br>";
                $mailverk.="<font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#FF0000\">";
                $mailverk.="</p></body></html>";

                mail(trim(base64_decode($user1[9])), "Rundschreiben"$mailverk$header);

                ?>
                Gibt die oben gepostete Fehlermeldung aus. Wenn ich die letzte Zeile ändere in:

                PHP-Code:

                if(mail(trim(base64_decode($user1[9])), "Rundschreiben"$mailverk$header)) {}; 
                dann funktioniert es, aber es wird gewartet bis die IF Anweisung auch fertig ist (also die Mail auch komplett verschickt wurde). Ich will aber das Script direkt nach absetzen des mail Befehls weiterlaufen lassen ohne das gewartet wird.

                Edit: Zeile 90 ist die Zeile mit dem mail Befehl, kommentiere ich die aus (also ignoriere die mailfunktion an sich), dann läuft das Script ebenfalls korrekt bis zum Schluss durch.

                Gruss
                Glow

                Kommentar


                • #9
                  Noch ein Edit:

                  vergebe ich der Mailfunktion eine Variable, dann geht es ebenfalls. Also letzte Zeile wird zu:

                  PHP-Code:
                  $tempvar=mail(trim(base64_decode($user1[9])), "Rundschreiben"$mailverk$header); 
                  Dann habe ich aber ebenfalls das Problem, daß zuerst die Mail versendet sein muss, bevor das Script weitermacht. Gibt es generell keine Lösung dafür, und ich muss das ganze auf eine nichtsichtbare Seite auslagern ?

                  Gruss
                  Glow

                  Kommentar


                  • #10
                    ist noch früh, und ich muss los, aber

                    dann funktioniert es, aber es wird gewartet bis die IF Anweisung auch fertig ist (also die Mail auch komplett verschickt wurde). Ich will aber das Script direkt nach absetzen des mail Befehls weiterlaufen lassen ohne das gewartet wird.
                    Wenns dir nur darum geht, dann vergiss es, und lies bitte, was ich dir oben schonmal geschrieben habe und mach dich ein wenig mit den PHP-Grundlagen vertraut.

                    Kommentar

                    Lädt...
                    X