Mail an 10.000 Leute schicken...
Firebrain
- php
HI Folks,
ich mach grad ne applickation wo an einer Stelle an ca. 10.000 Leute aus ner Datenbank nen Newsletter verschickt werden soll.
Ich hab mir gedacht ich hol mit SQL-"LIMIT" immer die nächsten 100 Leute und lass das Script sich dann wieder selber aufrufen mit nem Parameter, der sagt mit welchen nächsten 100 er weiter machen soll, solange bis eben alle durch sind.
Bei so vielen mails hab ich halt irgendwie Sorge, dass php (ich komm an die php.ini nicht ran) wegen nem timeout oder so abricht, oder sonst was komisches passiert.
Hat jemand vielleicht Erfahrung mit sowas und kann mir sagen, ob ich auf dem Holzweg bin, oder nicht ?
Gruss & Danke
Das riehcht nach Spam
nutze einen dienstleister.....wie z.b. e-circle
gruß tschwarz
ne nix spam, das ganze ist total sauber mit Bestellung usw...
das is nur ein Gewinnspiel und die Leute die sich registriert haben und wollen bekommen Nachricht über die nächste Runde (max 7 Mal, zeitlich begrenzt)
ich möchte eigentlich deswegen keinen Aufstand mit nem teuren Dienstleister machen ;-)
Also ich weiss ja nicht welche Maildienst Du damit ansprichst.
Aber 10 000.- Mails zu versenden, mache ich über Asyncrone Lösungen.
Dabei würde ich eine seperates Script verwenden, welches im hintergrund eine Logdatei erzeugt. -> Bei einem Fehler dort die letzte versendete mail einträgt.
Deine Applikation läuft gleich brav weitr und wenn es mit dem mailen nicht geklappt hat, schick dir selber eine mail.
Gruss Matze
thanx matze
Aber 10 000.- Mails zu versenden, mache ich über Asyncrone Lösungen.
--> was genau meinst du mit Asynchon ?
Dabei würde ich eine seperates Script verwenden, welches im hintergrund eine Logdatei erzeugt. -> Bei einem Fehler dort die letzte versendete mail einträgt.
--> ja, das hab ich mir auch so gedacht mit logfile, separatem Skript und Fehlermeldung bei ungueltigen Adressen und so...
Deine Applikation läuft gleich brav weitr und wenn es mit dem mailen nicht geklappt hat, schick dir selber eine mail.
--> Aber wie würdest du das Problem mit dem PHP-Timeout lösen ?
--> DAS macht mir nämlich am meissten Sorgen...
GREEZ
Firebrain
Servus,
das meinte ich mit asyncron,
syncron bedeutet, Du wartest bis Du eine Rückmeldung bekommst.
Asyncron startest Du einen neuen Prozess unabhängig vom alten.
Das müsste mit &exec oder so gehen.
Schau mal in der PHP Doku nach, wie man externe Scripte usw. ausführt.
Unter püerl gibt es einen befhel, mit dem man einen witeren Prozess starten kann und das Script dann weiter macht und nicht auf das andere wartet.
Gruss Matze
Holladiewaldfee,
Unter püerl gibt es einen befhel, mit dem man einen witeren Prozess starten kann und das Script dann weiter macht und nicht auf das andere wartet.
fork
Den gibt es unter PHP auch, allerdings nur wenn man PHP als Scriptinterpreter und nicht als Webserver-Modul installiert hat und die Erweiterung explizit mit eingebunden hat (--enable-pcntl).
s.h. auch:
http://www.php.net/manual/en/ref.pcntl.php
http://www.php.net/manual/en/function.pcntl-fork.php
Ich habe auch mit genau dieser Erweiterung ein Script zum Versenden von eMails geschrieben. Der Hauptprozess koppelt einen Nebenprozess ab, der zumindest halbwegs ohne TimeOut läuft (set_time_limit(0), http://de.php.net/manual/en/function.set-time-limit.php). Der Hauptpropzess läuft weiter und kümmert sich nicht im geringsten mehr um den Kindprozess. Dieser verarbeitet die eMail-Schlange und beendet sich dann. Bei Fehlern erzeugt er einen Eintrag in einer Log-Datei und schickt mir selbst nochmal eine eMail.
Ciao,
Harry
(Ha? Was ist an diesem Posting unsauber?)
Thanx Harry fuer die sehr ausfuehrliche und interessante antwort !!!
firebrain
Hallo Firebrain,
Ist Dir aufgefallen, dass Deine eigene Webpräsenz nicht richtig validiert: http://validator.w3.org/. Als Webgestalter solltest Du das drauf haben!
Heiner
Hallo Firebrain,
Ist Dir aufgefallen, dass Deine eigene Webpräsenz nicht richtig validiert: http://validator.w3.org/. Als Webgestalter solltest Du das drauf haben!
Heiner
ey Heiner,
thanx 4 hinweis, allerdings hat mich in vielen Jahren noch nie jmd. danach gefragt...
warum findest du das so wichtig ?
Seit gestern läuft hier eine interessante Diskussion, die Deine Frage vielleicht beantwortet: [pref:t=60063&m=337596].
Heiner
hi,
das is nur ein Gewinnspiel und die Leute die sich registriert haben und wollen bekommen Nachricht über die nächste Runde (max 7 Mal, zeitlich begrenzt)
die für glücksspiel laut gesetz notwendige lizenz kannst du vorweisen ...?
gruss,
wahsaga