Mail und Sleep in For-Schleife. Bug?

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

  • Mail und Sleep in For-Schleife. Bug?

    Hallo,

    Folgender Code:
    PHP-Code:
    for ($i=0$i<10$i++) {
    mail("meineemail@domain.de","test","Hallo!","from:test@test.de");
    ob_flush();
    flush();
    sleep(10);

    Folgendes Ergebnis:
    Die E-Mails werden alle auf einmal verschickt ohne dass, dazwischen 10 Sekunden vergehen.
    Warum? Wie kann ich das Problem umgehen? BUG?

    Gruß,
    Tiff
    Mein Projekt: Online Rechtschreibkontrolle (basierend auf PHP)

  • #2
    Re: Mail und Sleep in For-Schleife. Bug?

    Original geschrieben von tiff
    Die E-Mails werden alle auf einmal verschickt ohne dass, dazwischen 10 Sekunden vergehen.
    Warum?
    Weil mail() keine E-Mails verschickt, sondern sie nur an den MTA übergibt.

    Und wenn der sich entscheidet, erst mal zu "sammeln", und dann auf einen Rutsch rauszuschicken, dann hast du da mit PHP keinen Einfluss drauf.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke für die Antwort.
      Die Mails werden allerdings SOFORT alle auf einmal versendet es wird also wohl nicht beim MTA gesammelt denn sonst müsste der das ja erst nach 10x10 Sekunden raushauen.
      Wie kann ich das umgehen?
      Mein Projekt: Online Rechtschreibkontrolle (basierend auf PHP)

      Kommentar


      • #4
        zum einen nimm mal das ganze flush raus.
        zum anderen mach mal eine testausgabe, in dem du nach jedem aufruf von mail eine zeile (z.b. mit der uhrzeit) ausgibst oder in eine datei schreibst.

        Kommentar


        • #5
          Neuer Code:

          PHP-Code:
          for ($i=1$i<10$i++) {
              echo 
          $i."<br />";
              
          mail("meineemail@domain.de","test","Hallo!","from:test@test.de");
              
          sleep(10);

          Danke jetzt verschickt er die E-Mails im 10 Sekunden Abstand.
          Aber wieso funktioniert das nicht ohne echo?
          Mein Projekt: Online Rechtschreibkontrolle (basierend auf PHP)

          Kommentar


          • #6
            lag wohl eher an den flush befehlen.

            Kommentar


            • #7
              Auch ohne Flush und ohne Echo schickt er alle auf einmal raus
              Mein Projekt: Online Rechtschreibkontrolle (basierend auf PHP)

              Kommentar


              • #8
                eben

                Kommentar


                • #9
                  Hast du dir mal die Header Daten der Email angeschaut ? Dort müsste doch stehen um welche Uhrzeit der MTA die Email vom "PHP-Client" erhalten hat. Sind diese Zeiten denn auch alle identisch ?

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar

                  Lädt...
                  X