Anton: 10 000 Mails in einer Schleife!?

Hallo Forumsgemeinde,
ich mache gerade ein Newslettersystem für einen Freund und er hat momentan (bei einem Freeanbieter) ca. 10 000 Einträge also 10 000 Abonnenten (habe sie schon alle in die neue DB umgeschrieben).

So, nun habe ich also diese ca. 10 000 Emailadressen in der Db drin.

Aber ich habe irgendwo mal gelesen, dass PHP eine Schleife nach spätestens 30 Sekunden abbricht.
Ist das so oder nur bei Endlosschleifen?

und wenn ja., also wenn sie wirklich nur diese 30 Sekunden läuft kann ich das irgendwie abstellen oder sagen dass er genau X mal (in dem Fall die 10 000 mal) durchlaufen soll, oder wenn nicht, wieviele Mails kann PHP denn in diesesn 30 Sekunden maximal verschicken? Schafft er 10 000 Stück in 30 Sekunden oder muss ich das in mehrere Schleifen schreiben?

Und wenn ja, kann ich eine Schleife machen in der mehrere Schleifen sind und wenn ja, läuft dann jede von denen in der "großen" bis zu diesen Sekunden?

Das sind vieoe Fragen zu enem einzigen Thema ;-)

komme mir grad vor als hätte ich ein lustiges Scriptchen mit ganz vieen Ifs und elseifs geschriben ;-9

Danke schonmal für eure Hilfe :o)

Mfg Anton.

  1. Ich spreche natürlich vom versenden, also wenn die MAls in ener Schleife verschickt werden.

  2. Hi Anton

    Kommt auf den Anbieter drauf an.
    Es gibt sogar welche, da bricht es nach 10 sek ab!

    Dann gibt es aber auch clevere Script,
    die sich selbst beenden und neu Aufrufen alle X sekunden,
    damit genau dieser timeout nicht zuschlagen kann
    und das Script mit mehreren Aufrufen alle Mails senden kann

    http://www.letterit.de/ kann das.

    Selbst abstellen kannst Du das mit den 30 sek. deines Providers nicht,
    das liegt an der Server Konfiguration.

    Dennöch würde ich - trotz letterit - die 10.000 Abbonenten
    in kleinere Gruppen aufteilen.

    LG
    Aqua

  3. Hi Anton,
    also was ich weiß ist, das in der php.ini eine max_execution_time gibt. Denn Wert kannst du beliebig ändern. Guck auch mal hier
    http://www.selfphp.info/fragen_antworten/fehlermeldungen/max_exec_time.php

    Hoffe dir ein bischen geholfen zu haben
    Krissi

    1. hi Krissi!

      Also IMHO hilft das relativ wenig wenn der Server-Admin
      einen timeout von 10 Sekunden oder auch 30 Sekunden setzte,
      irgendwas an der php.ini zu schrauben...
      Ausserdem kommt man an die "echte" ja gar nicht ran...

      Aber falls Du Beweise hast - es interessiert mich sehr!

      LG
      Aqua

      1. Hallo Aqua,

        Also IMHO hilft das relativ wenig wenn der Server-Admin
        einen timeout von 10 Sekunden oder auch 30 Sekunden setzte,
        irgendwas an der php.ini zu schrauben...

        Wenn man Zugriff auf die php.ini hat, kann man normalerweise alle PHP betreffende Einstellungen ändern. Bei max_execution_time ist das noch nicht einmal nötig: http://www.php.net/manual/en/function.ini-set.php zeigt dir, dass man max_execution_time z.B. auch in einer .htaccess setzen kann.

        Ausserdem kommt man an die "echte" ja gar nicht ran...

        Wie meinst du das?

        Schöne Grüße,

        Johannes

        --
        Der folgende Satz ist wahr.
        Der vorhergehende Satz ist gelogen.
        ss:| zu:} ls:[ fo:} de:] va:} ch:) sh:( n4:| rl:( br:< js:| ie:{ fl:( mo:}
  4. Hello,

    bei den älteren PHP-Versionen kann man hier einen Bug zum Feature machen...

    Wenn Du in deiner Schleife die Funktion sleep() uder besser usleep() [geht nicht immer auf Windows-Systemen] benutzt, fängt die max_execition_time neu an zu zählen. Dann solltest Du aber auf jeden Fall eine eigen Abbruchbedunung einbauen, dam Dein Provider nicht irgendwann an "unendlichen Geschichten" schlapp macht.

    Aber nun mal zur Programmplanung:
    Muss denn an jeden Empfänger eine Einzelmail verschickt werden? Das ist doch nur notwendeig, wenn man Mail-IDs vergibt oder mit Verschlüsselung arbeitet.

    Sonst kannt Du doch CC: oder BCC: benutzen. Dann ist PHP innerhalb einer Sekunde mit dem auftrag fertig und den Rest macht der MTA.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Morgen,

      Aber nun mal zur Programmplanung:
      Muss denn an jeden Empfänger eine Einzelmail verschickt werden? Das ist doch nur notwendeig, wenn man Mail-IDs vergibt oder mit Verschlüsselung arbeitet.

      Sonst kannt Du doch CC: oder BCC: benutzen. Dann ist PHP innerhalb einer Sekunde mit dem auftrag fertig und den Rest macht der MTA.

      hm, ja, aber dann muss ich doch wieder in einer schleife die ccs ausgeben.
      Aber das wär ne gute idee, weil das ja schneller geht...

      Und wie gebe ich cc's ein?

      Danke, Anton.

      1. Hello,

        Aber nun mal zur Programmplanung:
        Muss denn an jeden Empfänger eine Einzelmail verschickt werden? Das ist doch nur notwendeig, wenn man Mail-IDs vergibt oder mit Verschlüsselung arbeitet.

        Sonst kannt Du doch CC: oder BCC: benutzen. Dann ist PHP innerhalb einer Sekunde mit dem auftrag fertig und den Rest macht der MTA.
        hm, ja, aber dann muss ich doch wieder in einer schleife die ccs ausgeben.
        Aber das wär ne gute idee, weil das ja schneller geht...

        Und wie gebe ich cc's ein?

        Da suchst Du hier mal unter "mime mail" oder unter "mail header" und dann solltest Du viele Threads finden, die Dir weiterhelfen.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau