Viele E-mail's per BCC versenden / PHP MySQL
pixelschubser
- php
0 pixelschubser0 EKKi0 hotti
Guten morgen,
Ich möchte gerne einen Newsletter versenden.
Die Empfänger (+-2000) sind in einer MySQL Datenbank gespeichert.
Per schleife erhällt jeder seine E-mail einzeln.
Was bei mir jedesmal zu einem Timeout führt.
Meine Frage:
Ist es möglich, in meinem Fall, bis zu 2000 E-mail's per BCC zu versenden oder würde das auch zum Timeout führen ?
Muß ich sonst Pausen in meinem Script einbauen ?
Wenn ja, wie ?
gruß
pixelschubser
Guten morgen,
Ich möchte gerne einen Newsletter versenden.
Die Empfänger (+-2000) sind in einer MySQL Datenbank gespeichert.
Per schleife erhällt jeder seine E-mail einzeln.
Was bei mir jedesmal zu einem Timeout führt.Meine Frage:
Ist es möglich, in meinem Fall, bis zu 2000 E-mail's per BCC zu versenden oder würde das auch zum Timeout führen ?Muß ich sonst Pausen in meinem Script einbauen ?
Wenn ja, wie ?
gruß
pixelschubser
keiner ne ahnung ?
Mahlzeit pixelschubser,
Ich möchte gerne einen Newsletter versenden.
Du? Oder willst Du das einem Skript überlassen? ;-)
Die Empfänger (+-2000) sind in einer MySQL Datenbank gespeichert.
Per schleife erhällt jeder seine E-mail einzeln.
Was bei mir jedesmal zu einem Timeout führt.
Hm, dann
verlängere das Timeout oder
starte das Skript mehrfach (Voraussetzung dafür ist natürlich, dass Du protokollierst, wann Du an wen verschickst und ob der Versand erfolgreich war: dann darf sich das Skript natürlich immer nur die zum Versand suchen, die noch nix bekommen haben).
Ist es möglich, in meinem Fall, bis zu 2000 E-mail's per BCC zu versenden oder würde das auch zum Timeout führen ?
Probier es aus - im Prinzip verschickst Du dann nur einmal eine Email an einen Mailserver, das kann nicht lange dauern. Allerdings muss der Mailserver dann akzeptieren, dass Du ihm so viele BCC-Empfänger vorsetzt.
Muß ich sonst Pausen in meinem Script einbauen ?
Was soll das bringen, wo doch sowieso ein Timeout passiert? Du willst die Verarbeitung noch weiter künstlich verlangsamen?
MfG,
EKKi
hi
verlängere das Timeout oder
starte das Skript mehrfach (Voraussetzung dafür ist natürlich, dass Du protokollierst, wann Du an wen verschickst und ob der Versand erfolgreich war: dann darf sich das Skript natürlich immer nur die zum Versand suchen, die noch nix bekommen haben).
Ich glaub ich werde das mit Flash machen.
Pro aufruf sollen 100 Leute eine E-mail bekommen.
Flash würde ich nur benutzen um das PHP Script alle 30 Sekunden zu starten und jeweils das LIMIT für den Query mitzusenden.
0,100
99,100
199,100
299,100
...
Per Acionscript berechne ich vorher wie oft das Script gestarte würde.
Schon mal wer was ähnliches gemacht ?
Muß ich sonst Pausen in meinem Script einbauen ?
Was soll das bringen, wo doch sowieso ein Timeout passiert? Du willst die Verarbeitung noch weiter künstlich verlangsamen?
Ich dachte das würde den Server entlasten, dem scheint aber nicht so zu sein ?
Hi.
Ich glaub ich werde das mit Flash machen.
Pro aufruf sollen 100 Leute eine E-mail bekommen.
Schon mal wer was ähnliches gemacht ?
Kann man machen, hat aber einige Nachteile... Z.B. kann der Flash Client abrauchen und Du weisst nicht mehr, wie weit Du warst... Oder aber es melden sich Teilnehmer während des Versands an / ab, dann stimmt das limit womöglich nicht mehr....
Ich habe das mal wie folgt gelöst und bin gut damit gefahren:
Schiebe alle Empfänger in eine TMP Tabelle und arbeite die für den Versand ab(Senden + delete from tmp, senden + delete from tmp usw...).
Künstliche Pausen sind imho zu empfehlen.
Grüße
hallo,
Kann man machen, hat aber einige Nachteile... Z.B. kann der Flash Client abrauchen und Du weisst nicht mehr, wie weit Du warst... Oder aber es melden sich Teilnehmer während des Versands an / ab, dann stimmt das limit womöglich nicht mehr....
Ich habe mal in der DB nachgeschaut, es tragen sich durchschnittlich pro Tag 0,3 Leute ein.
Schiebe alle Empfänger in eine TMP Tabelle und arbeite die für den Versand ab(Senden + delete from tmp, senden + delete from tmp usw...).
Trotzdem eine sehr gute Idee mit der TMP Table.
So bleibt sogar der LIMIT Wert immer identisch und ich muß per ActionScript nur noch berechnen wie oft das Script zu starten ist.
Danke für den guten Tip !
hi,
Ich möchte gerne einen Newsletter versenden.
Die Empfänger (+-2000) sind in einer MySQL Datenbank gespeichert.
Per schleife erhällt jeder seine E-mail einzeln.
Was bei mir jedesmal zu einem Timeout führt.
Falls Du mit Timeout die Zeit meinst, die ab dem Start des Prozesses vergeht, bis die Response vollständig im Browser angekommen ist:
Mach den Serverprozess unabhängig davon. Eine Möglichkeit ist Ajax, damit kannst Du per HTTP-Request auf dem Server Prozesse starten, die asynchron zum Request weiterlaufen, ohne dass der Browser das Ende der Prozesse abwartet (er muss natürlich auch hier eine Antwort bekommen).
Eine andere Möglichkeit ist die, dass der Prozess zum Mailversand per Crontab gestartet wird.
--Hotte