[PHP] Newslettersystem

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

  • [PHP] Newslettersystem

    Hey,

    ich habe ein kleines Brainstorming mit einem Newsletter Script.

    Sagen wir mal, ich möchte weit über 1.000 Mails mittels PHP versenden. Da wird natürlich früher oder später das Execution Timeout erreicht. Dieses möchte ich aus Sicherheitsgründen(falls mal ein Skript ammok läuft ) nicht verändern.

    Nach einer Suche in diesem Forum und lesen versch. Newsletter Skripte, habe ich keine wirklich eleganten Lösung gefunden. Manche haben es mittels Meta-Refresh gelöst, andere per temporärer Tabelle und wieder andere per header() nach einer gewissen Laufzeit.

    Was mich allerdings verwundert hat, schickt das phpBB die Massenmail auf einmal raus. Es gibt nicht wenige Foren die weit über 1.000 reg. Mitglieder haben.

    Wie würdet Ihr so etwas lösen? Könnte man dieses Problem mit Threads lösen?

    Besten Dank!

  • #2
    mache eine weitere tabelle mailqueue oder so. dort trägst du alle daten ein, welche mal verschickt werden sollen.

    mithilfe eines cronjobs lässt du ein script in einem von dir definiertem interval laufen. (ich habe bei mir 1 min eingestellt).

    dieses script macht ein select auf alle nichtverschickten mails aus der tabelle und bügelt die mit smtp raus. derzeitig habe ich 100 oder 150 mails pro minütlichem durchlauf, welche ich versende.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      phpbb sendet die mails alle auf einmal indem es alle empfänger als bcc einträgt wenn ich mich recht erinnere
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Original geschrieben von Abraxax
        derzeitig habe ich 100 oder 150 mails pro minütlichem durchlauf, welche ich versende.
        100 bis 150 Mails pro Minute? Wie schaffst Du das denn?

        Kommentar


        • #5
          Original geschrieben von Innuendo
          100 bis 150 Mails pro Minute?
          nein. pro minütlichem durchlauf.

          das script selber ist nur 15-25 sec beschäftigt.

          Original geschrieben von Innuendo
          Wie schaffst Du das denn?
          wie oben beschrieben?
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Danke!

            Klingt sehr gut!

            Zum Bsp. leg ich diese eine Tabelle an(als Feld würde ja theoretisch schon die Mailadresse reichen). Dann ruft das Skript sagen wir mal die ersten 100 Datensätze ab. Generiert aus diesen denn BCC String, ruft z. B. die mail() Funktion auf und bei Erfolg werden die 100 Datensätze aus der Tabelle gelöscht.

            Lässt Du den Cronjob danach weiterhin jede Minute durchlaufen, also wenn die Tabelle leer ist?

            Grüssle

            Kommentar


            • #7
              wenn du per bcc schickst, kannst du auch einfach alle adressen auf einmal auslesen und eine mail verschicken, in der alle empfänger im bcc-feld stehen


              mit dieser zusatztabelle wie sie haxe nutzt kannst du wirklich jedem benutzer seine ganz eigene mail schicken
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Original geschrieben von flolle
                Lässt Du den Cronjob danach weiterhin jede Minute durchlaufen, also wenn die Tabelle leer ist?
                na klar. wie soll ich denn sonst neue mails aus der queue, die irgendwer mal einstellt bearbeiten.

                Original geschrieben von mrhappiness
                mit dieser zusatztabelle wie sie haxe nutzt kannst du wirklich jedem benutzer seine ganz eigene mail schicken
                richtig. ich muss zwingend individualisierte mails versenden. daher muss ich das so machen.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  OffTopic:
                  als ob ich's gewusst hätte...
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    OffTopic:
                    du wusstest es ja auch .... wie unfair...
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      du kannst das wie bereits gesagt mit bcc lösen. diese mail-header dürfen allerdings hast du ein limit.

                      kann das limit leider auf die schnelle nicht finden, müsstest du mal im mail rfc nachlesen.

                      der trick ist dann: füge soviele mail-addressen zum bcc hinzu bis die maximale länge überschritten ist, kürze eine wieder weg, schick die mail ab und fange inklusive der weggekürzten addy wieder einen neuen bcc string an.

                      Kommentar


                      • #12
                        Danke...

                        Zu der Möglichkeit über BCC:

                        Wenn ich bei uns im phpBB(dort werden die Massenmails per BCC vesendet) nur an unsere Entwicklergruppe eine Mail schicke(ca. 40 Personen), dann rattert die Kiste schon einige Sekunden! Wenn ich mir jetzt z. B. 2.000 vorstelle, dann müsste auch das Timeout erreicht werden.

                        Oder liegt das an was anderem und PHP verschickt nur eine Mail?

                        Grüssle

                        PS: Beim phpBB ist soweit ich das in Erinnerung hab, keine Begrenzung im Skrript drin gewesen.

                        Kommentar


                        • #13
                          wenn du es via BCC machst, wird nur eine mail seitens php versendet. den rest macht z.b. sendmail unter linux.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Super Danke!

                            Dann war das entweder Einbildung oder etwas anderes was zu diesem Moment den Server belastet hat.

                            Jetzt muss ich mich nur noch durch die RFC's wühlen um die max. Anzahl der BCC Empfänger rauszufinden.

                            Wo liegen eigentlich die Stärken von Mailman und co.?

                            Grüssle

                            Kommentar


                            • #15
                              mailman?
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X