login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Max 350 mails per uur

Offline kenzo - 06/02/2009 14:38
Avatar van kenzoPHP beginner Hallo,

Ik kan maximaal 350 mailtjes per uur versturen.
Nu verstuur ik met de nieuwsbrief ongeveer 2000 mailtjes.


Hoe kan ik het beste een systeem maken via bijvoorbeeld cronjob dat ik elk uur maar 350 mails verstuur en het uur erna weer totdat alle leden een mail hebben.


Ik kan wel in de database met waardes van 1 t'm ... gaan werken ofzo en selecteren waar leden geen 1 hebben deze week ofzo, maar als ik zondag avond zo'n mail verstuur dan werkt het weer niet goed.

8 antwoorden

Gesponsorde links
Offline marten - 06/02/2009 14:46
Avatar van marten Beheerder cookie zetten met welke emails je al gehad hebt?
Offline Ontani - 06/02/2009 14:56
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Cronjob laten lopen en resultaten in een logfile schrijven zo weet je welke mails al verstuurd zijn.
Offline Rik - 06/02/2009 15:00
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik weet niet hoe betrouwbaar PHP.net: ignore_user_abort is, maar dat zou je misschien kunnen gebruiken om je script een paar uur door te laten lopen.

Je hoeft dan alleen maar na elke 350 mailtjes even te kijken hoe veel tijd er is verstreken en het script een timeout te geven zodat er minstens één uur voorbij is.
Offline Maarten - 06/02/2009 16:55 (laatste wijziging 06/02/2009 16:57)
Avatar van Maarten Erelid Dit wil dus zeggen dat je alle 11 seconden een e-mail kan sturen. Laat je script 11 seconden wachten na het versturen van iedere mail.

PHP.net: sleep

In de comments van PHP.net: ignore_user_abort staan inderdaad ook een aantal handige voorbeelden waarmee je elke 11 seconden een e-mail kan sturen.

edit: eigenlijk mag het elke 10,29 seconden 
Offline Gerard - 07/02/2009 09:59
Avatar van Gerard Ouwe rakker ik ben er 100 procent zeker van dat een dergelijk topic al op Sitemasters staat. Volgens mij is die van vorige maand. Even zoeken en dan weet je al iets meer. 
Offline kenzo - 07/02/2009 10:10
Avatar van kenzo PHP beginner Ik zag dit, is dit ongeveer de bedoeling?

  1. <?php
  2.  
  3. while(1)
  4. {
  5. if(connection_status() != CONNECTION_NORMAL)
  6. {
  7. break;
  8. }
  9. // HIER KOMT HET SCRIPT OM TE MAILEN
  10. sleep(11);
  11. }
  12.  
  13. ?>



en dan 1 iemand mailen en nadat gemaild is bij dit lid een status gemaild=1 geven.

na 11 seconden naar volgende id waar gemaild= geen 1 en die mailen.


als 0 resultaten zijn alle gemaild=0 maken?


is dit de bedoeling of doe ik het nu helemaal fout?
Offline zwinselman - 08/02/2009 23:25
Avatar van zwinselman Lid Zelf werk ik met een cronjob die elke minuut 100 mailtjes verstuur.
De eerste keer verstuurd ie naar gebruikers id 1 t/m 100 en sla 100 op in de database (of logfile).
Na 1 minuut draaid de cronjob weer en verstuurd dan naar gebruikerid $laatst_verstuurd(100 dus) +100 en sla dus die gebruikersid 200 weer opnieuw op.
Dit gaat net zo lang door dat alle gebruikers zijn gemailt.
Dit werkt tot op heden prima.
Alleen een nadeel als je maar 350 mailtjes per uur kan versturen wil dus zeggen dat dit 3 uur gaat duren met 1000 leden.
Gaat erg vervelend worden als je 10.000+ leden hebt..LOL
Offline Gerard - 09/02/2009 08:39
Avatar van Gerard Ouwe rakker Waarom neem je niet even contact op met je hosting provider om te kijken wat er mogelijk is om die cap te verwijderen. Ik neem aan dat het namelijk gedaan is om misbruik te voorkomen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.177s