lit-web 0 Posted March 3, 2009 Share Posted March 3, 2009 Hallo Leutz heute muss ich mich mal wieder Hilfesuchend an euch wenden. Ich habe zwar zu meinem problem eine Idee, aber momentan weis ich nur nicht wie umsetzen. Und zwar programmiere ich gerade an meinem Newsletter in meinem online Shop Script. Nun kann es aber sein das mal sehr viele Emailadressen drin stehen und das Script abbricht wenn maximale Zeit erreicht ist. So wiet so gut. Meine Idee ist nun folgende. Ich lese die Emailadressen Tabelle aus und ermittel erst mal die Gesamtzahl an vorkommenden Empfängern. Dann lese ich die Tabelle noch mal aus für den Mailversand. In der whileschleife versende ich dann nach und nach die Email an die Empfänger und lasse in der Schleife einen Zähler mitlaufen. Und aller 50 versendeten Mails soll das Script abbrechen und dann wieder die nächsten 50 Mails versenden und das so lange bis nichts mehr da ist. Das wieder ansetzen des Scriptes zum Weiterversand will ich dann mit einem meta refresh machen. Soweit zur Theorie, nur weis ich momentan überhaupt nicht wie ich das grad umsetzen soll Programmtechnisch. Hier men derzeitiger code,ab hier weis ich nicht mehr weiter. Ich muss da den Vergleich finden ob die Zählvaribable entweder 50 ist oder eben dann immer wieder 50 höher ist, da dann den abruch machen und immer per meta refresh weiter senden bis der Vergleich der Zählervariablen mit dem Gesamtempfengerwert gleich ist und dann komplett das Script beenden. Also wenn Ihr mir da ein wenig Hilfestellung geben könntet wäre das super genial für euch. Gruß litter Quote Link to post Share on other sites
kenny 0 Posted March 4, 2009 Share Posted March 4, 2009 check doch einfach ob deine mitlaufende variable $start 50 ist... Wenn ja.. dann ruf die Seite einfach nochmal auf.. und übergib ein offset für den nächsten Schub an Versendungen. Brauchst natürlich dann auch noch eine 2te Mitlauf-Varianle, die die Anzahl der Durchgänge zählt ($i). ungefähr so: Hoffe ich hab nichts vergessen. Sollte aber ja auch erstmal nur ein Denkanstoss sein. Schön find cih die Lösung ehrlich gesagt irgendwie nicht. Quote Link to post Share on other sites
Powie 1 Posted March 4, 2009 Share Posted March 4, 2009 boah.... was soll das ganze Konstrukt bringen? Ist ja grausam [] Quote Link to post Share on other sites
kenny 0 Posted March 4, 2009 Share Posted March 4, 2009 Soll bringen, dass bei einem Dateiaufruf maximal 50 mal sendmail() aufgerufen wird, um die maximal Scriptlaufzeit nicht zu überschreiten. Hab selber gesagt das ich die Lösung nicht gerade schön finde. Hast du eine andere Idee? Ist nicht trotzig gemeint. Würde mich echt interessieren, wie man so ein Problem umgehen könnte außer so "dreckig". Quote Link to post Share on other sites
maui muc 0 Posted March 4, 2009 Share Posted March 4, 2009 Wie wäre es mit der Idee, dass man einen Timer und einen Zähler mitlaufen lässt. Den Timer vergliecht man bei jedem Durchgang mit der max_execution_time. Kurz bevor die max_execution_time überschritten wird ruft man einfach das Script erneut auf, übergibt den Zähler und macht da weiter wo man aufgehört hat. Quote Link to post Share on other sites
kenny 0 Posted March 4, 2009 Share Posted March 4, 2009 Würd sagen, dafür hängt die Performance viel zusehr von der aktuellen Serverauslastung ab. Aber eine Idee wär's. Quote Link to post Share on other sites
lit-web 0 Posted March 4, 2009 Author Share Posted March 4, 2009 Das hat aber einen Haken, man müsste die letzte Empfenger ID speichern und dem Script dann sagen das es bei der darauffolgenden wieder weitermachen soll. Da ist die Variante das mit einem reinen Zähler zu machen besser. Ich habe schon überlegt das in Form wie einer Blätterfunktion zu machen, aber da weis ich momentan auch grad nicht weiter. Quote Link to post Share on other sites
kenny 0 Posted March 4, 2009 Share Posted March 4, 2009 Die ID musst du nicht speichern. Das wird doch mit dem SQL Offset gemacht. Meine Methode entspricht der einer Blätterfunktion. Nur das halt automatisch durchgeblättert wird. Quote Link to post Share on other sites
mahe 0 Posted March 4, 2009 Share Posted March 4, 2009 Warum haut ihr die ned einfach alle ins BCC oder verwendet eine Mailinglist dafür? Quote Link to post Share on other sites
Powie 1 Posted March 5, 2009 Share Posted March 5, 2009 Original von mahe Warum haut ihr die ned einfach alle ins BCC oder verwendet eine Mailinglist dafür? [] Quote Link to post Share on other sites
Powie 1 Posted March 5, 2009 Share Posted March 5, 2009 Ach und Shellscripte gibts ja auch noch. Quote Link to post Share on other sites
kenny 0 Posted March 5, 2009 Share Posted March 5, 2009 Meine Lösung ist schon allein deswegen scheisse, weil ja der Inhalt der zuversendenen Mail garnicht übermittel wird :gaga: Quote Link to post Share on other sites
raiser 0 Posted March 5, 2009 Share Posted March 5, 2009 Ich würde an dieser Stelle auch ein !#/bin/bash ansetzen. Oder "PERL" oder.... ASH oder.... Ansätze gibt es da viele... nur mit php wird es nie sauber. Quote Link to post Share on other sites
Powie 1 Posted March 6, 2009 Share Posted March 6, 2009 Siehe pNL; da hab ich für sowas ein Shellscript welches genau das macht! Quote Link to post Share on other sites
raiser 0 Posted March 18, 2009 Share Posted March 18, 2009 Jo, aber du bist ja auch dein EIGENER Admin [] .... Tja Litti, ich würd sagen, wenn du nicht mit der BASH rankommst, hast du den falschen Provider... Da fällt mir ein.... Ich brauch schon wieder nen Webserver. Hat der powie noch Kapazität ? [ot] Werbung Wollt damit nur sagen.... da wirst du rundum glücklich sein. Für kleines Geld: SSH, cronjobs, etc... [/ot] lG Henrik Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.