Jump to content


This topic is now archived and is closed to further replies.


Email large user list and avoid timeout [SOLVED]

Recommended Posts

HI Guys,

I am building a newsletter system for our site at work and i cant seem to send all the emails without the page/code falling over.

We have 850,000 registered users so its not an easy task.

this is my current situation:

Render Email Template (Only do this once)
Connect to SMTP
Say Hello, Prepare server for data

    Select Current Chunk of 500 users from the DB
        Loop through chunks of 500 emails from the db
        Replace User-Specific Tags inside email body.
        update row email_sent = true

Close SMTP Connection

At the moment i can only reach around 50,000 emails before the page stops dead.

I am utilizing various sleep() calls to try an prevent a timeout, and i have set the PHP max_timeout / memory settings etc.

The site uses Mod_rewrite (built using CakePHP) so i cannot call the script from shell using /usr/bin/php/... as it will not start cakes Dispatch system etc, and will not initialize my DB Models.

Would it help to call the script from exec()? Calling exec('curl -s /path/to/my/file/')?

Does the Apache "Timeout" Setting have any bearing on what i am doing??

I checked out SendStudio's source code, and it seems to do the following...

<<Start firing emails>>

they do not appear to be doing anything spectacular to avoid timeouts. I Have used send stduio before to email around 340,000 users without any problems so i am most confused.

Any help / knowledge in this area would be great as i am absolutely up **** creek without a paddle!

F.Y.I The site is on a Dedicated Linux Box at RackSpace, using PHP 4.

Kinds Regards in advance,

Toby de Havilland.

Share this post

Link to post
Share on other sites
Spam? :-/

If it is, and these people do not want your emails, you are a lowlife scumbag and I hope you get throat cancer. If not, then disregard. ;-)

Share this post

Link to post
Share on other sites
haha, No of course it isnt spam...

If it was spam i would get a crappy dektop app and import my CSV of dodgy emails.

It is a Newletter App to intergrate into our website at work. It is a large onle gaming website with many users. All of whom have accepted the Newsletter.

So.. no more rudeness please...

Share this post

Link to post
Share on other sites

By creating a clever hack using flush(), ob_flush(), ob_end_flush(),ob_get_level() and ob_start() i was able to push content to tr browser to stop it thinking the page was dead, i also managed some clever calls to free up some memory and then..... Smiles all round :0)

Share this post

Link to post
Share on other sites


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.