Ankündigung

Einklappen
Keine Ankündigung bisher.

Schleife mit mail() hängt, hört nicht auf Mails zu senden.

Einklappen

Neue Werbung 2019

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

  • Schleife mit mail() hängt, hört nicht auf Mails zu senden.

    Hallo,

    ich habe dummerweise in einer for()-Schleife eine mail()-Funktion benutzt und wegen eines Fehlers im Script hört dieses jetzt nicht auf zu arbeiten und schickt mir dauernd Mails. Wie kann ich das beheben?

    Danke und LG
    Kremser

  • #2
    Naja wenn es dein eigener Server ist Prozess töten sonst vlt mal Hosting Anbieter anschreiben.

    Kommentar


    • #3
      Naja, irgendwann müsste doch der Script-Timeout zuschlagen. Aber in 90(?) Sekunden kann man halt schon einen Haufen E-Mail versenden

      Kommentar


      • #4
        Hätte ich auch gedacht..
        - Timeout ist auf 60 Sekunden eingestellt.
        - Hab das Script schon umgeschrieben
        - Die Datei ersetzt durch eine mit exit;-Befehl
        - Die Datei ersetzt durch eine mit break;-Befehl
        - Die Datei gelöscht
        ...

        macht trotzdem munter weiter... bereits seit 6 Stunden und pro Minute kommen so 2-5 Mails lol

        Und der Support lässt auf sich warten.

        Kommentar


        • #5
          ruft sich dein script etwa mit irgendeinem Header-Befehl selbst wieder auf ? oder gar als cron-job / offline-script ?

          Kommentar


          • #6
            das glaub ich nicht... die header daten waren:

            $header .= "From: ......\n";
            $header .= "Content-Type: multipart/mixed; boundary = \"mixed-".$boundary."\"\;\n";

            $attach = chunk_split(base64_encode(file_get_contents(...))) ;
            $header .= "--mixed-".$boundary."\n";
            $header .= "Content-Type: image/jpeg; name=".$i.".jpg\n";
            $header .= "Content-Transfer-Encoding: base64\n";
            $header .= "Content-Disposition: attachment\n\n";
            $header .= $attach."\n\n";
            $header .= "--mixed-".$boundary."\n";

            cronjob ist ausgeschlossen
            offlinescript?

            Kommentar


            • #7
              Zitat von kremser Beitrag anzeigen
              - Hab das Script schon umgeschrieben
              Hilft nichts, wenn eine Scriptinstanz auf Basis des früheren Codes bereits läuft und nicht abgebrochen wird.

              Und der Support lässt auf sich warten.
              Tja, dann heißt es wohl in Geduld üben.
              Und was für's nächste mal draus lernen - dass man solche Scripte gründlicher testet, bevor man sie tatsächlich Mails versenden lässt.

              Kommentar


              • #8
                ich meine nicht den Mail-Header, den du versendest,

                sondern ob dein Script sich / ein anderes per header("Location: URL"); aufruft oder ähnliches ...

                Kommentar


                • #9
                  Zitat von eagle275 Beitrag anzeigen
                  sondern ob dein Script sich / ein anderes per header("Location: URL"); aufruft oder ähnliches ...
                  Dann würde es ja trotzdem nicht ewig weiterlaufen, wenn kein Browser o.ä. mehr da ist ...

                  Kommentar


                  • #10
                    stimmt auffallend - deshalb hab ich ja gefragt, ob das script nicht ganz und gar "offline" läuft, also nicht im Context Webserver, sondern als Console-Script

                    Kommentar


                    • #11
                      nein, es ist kein header("location...") im script..

                      auslöser war jedenfalls, dass ich fälschlicher weise bei for($i = 1; $i <= 10; $i++){ das < vergessen habe.

                      Kommentar


                      • #12
                        PHP-Code:
                        foreach ( range(1,10) as $i ) {
                           
                        /* la la land! */

                        Fürs nächste mal :P

                        Was dein problem angeht: schau ob dein hoster so intelligent war, die scripte auf die web-user zu evaluieren und ob du dort eine möglichkeit im User-Center hast, Script-Instanzen zu killen. Falls nicht hilft dir nur ein mail filter auf deinem Postfach der automatisch die Mails von der Seite trashed, bis der support so gnädig war seinen Praktikanten anzuweisen die betroffenen Prozesse zu "töten".

                        Kommentar


                        • #13
                          Danke für die Info

                          Seit wann macht man das mit foreach()? (Ich war die letzten Jahre nicht so präsent in der PHP-Szene ^^)

                          Nein, so intelligent war er nicht *g*

                          Der Mailspam hat aber mittlerweile aufgehört, aber ich hab mein POP3-Postfach gleich gelöscht und ein neues angelegt. Da waren so viele Mails drinnen, dass es beim Auslesen ein Timeout gab (ca 2,5k á 500 kb).

                          Kommentar


                          • #14
                            nun foreach bietet in jedem Fall die Gewissheit, dass es für JEDES Element eines geeigneten "OBJKEKTES" den Schleifenkörper abarbeitet- und sich automatisch um die Schritte kümmert...

                            "OBJEKT" bedeutet hier im engeren Sinn natürlich ein Array bzw Array-ähnliches Konstrukt (Liste)

                            dadurch bist du automatisch von der eigenen Konstruktion eines Schleifenkopfes gleichsam "befreit". Natürlich will auch Foreach einen haben, aber der ist im Regelfall sehr leicht und lesbar. ... Hier kam als Problem, dass es eigentlich kein Array gibt - weshalb eben mittels Range eines der "Objekte" erstellt wird, mit dem Foreach arbeiten kann (in dem Fall eben genau 10 Schritte macht)

                            Hauptvorteil bei Foreach bleibt aber, dass du dir über den Zugriff auf die Elemente wenig Gedanken machen willst - weil dies ja automatisch der Kopf des Foreach vorgibt
                            Foreach ("Objekt" as $einzelelement) damit funktionert es gleichsam für konventionelle Arrays (mit Integer-Keys), für Assoziative Array(String-Keys) Arrays mit Lücken im Key und so weiter

                            Kommentar


                            • #15
                              Danke für die Erklärung!

                              Kommentar

                              Lädt...
                              X