Re: [PHP] Batch E-Mail Problem

2002-08-14 Thread Mirek Novak

Hi,
   I've solved this problem, if u have cgi version of PHP compiled on your box I can 
offer simple solution:
All e-mails are completely stored into database (MySQL) and are sent using little 
daemon, also written in PHP, emails can be 
automaticaly generated or written through web interface, can have attachements or can 
be html-formated.
So your script shouldn't send them directly, but only store them into db - what's much 
more faster.

Daren Cotter wrote:
> I have a PHP script that queries a MySQL database,
> retrieves email addresses, and sends an email to all
> members of a website.
> 
> The problem is this: the PHP script times out after
> sending about 5,000 mailings, and I have to restart it
> 10 times in order to mail the entire list!
> 
> This is an ongoing problem I have had for almost a
> year now. I have tried MANY things to make this work
> better, which I have outlined below:
> 
> 1) Upped the Max Excecution Time in PHP from 30 to a
> ridiculously high 300 (is this a security issue?)
> 2) Upped the Max amount of memory a PHP script can
> have from 8mb to 16mb
> 3) Running sendmail in "deferred" mode instead of
> "background" mode, and processing the mail queue ever
> 5 minutes instead of the default 1 hour.
> 
> Results:
> 
> 1) The script runs much longer, but still times out.
> (One thing I want to make clear, even when max
> execution time is 30 seconds, the script does not stop
> after 30 seconds, maybe it just means 30 seconds of
> inactivity?)
> 
> 2) I have no idea if this is making a difference or
> not, does anyone know?
> 
> 3) Since this means mailings get sent right into the
> queue, and not sent right away, the HTTP interface
> runs 10 times faster. This would be a GREAT solution
> for me, but it has one drawback: when a user signs up
> for the site, their confirmation email must be sent
> immediately...it cannot sit in the queue until the
> next time the queue is processed (at most 5 minutes).
> 
> So, I figure I have two options. Leave sendmail as set
> to deferred, process the queue every so often, but
> find a way to have the confirmation emails sent
> immediately. This is really the option I want to do.
> The sendmail version I have (latest version), has 4
> separate mail queues. Does anyone know how to use PHP
> to stipulate that some mailings get sent immediately,
> while others are just queued until the next queue run?
> 
> Otherwise, I have to set the delivery method of
> sendmail back to background, have mailings take 10
> times as long from the HTTP interface, and try and
> find some way from keeping the script from timing out
> and having to restart the mailing.
> 
> ANY HELP is greatly appreciated!
> 
> BTW, the server is loaded, dual proc, gig of ram,
> etc...more hardware has not helped the problem.
> 
> __
> Do You Yahoo!?
> HotJobs - Search Thousands of New Jobs
> http://www.hotjobs.com
> 



-- 
--
Mirek Novak
CMS Development dept.

Anima Publishers, s.r.o.
Prilucka 360, Zlin 760 01
tel/fax: 067/721 91 32
jabber:[EMAIL PROTECTED]
ICQ:119499448
GSM:+420603807838

AUTO.CZ
http://www.auto.cz

NEWS.AUTO.CZ
http://news.auto.cz

FORMULE1.CZ
http://www.formule1.cz


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[PHP] Batch E-Mail Problem

2002-08-14 Thread Daren Cotter

I have a PHP script that queries a MySQL database,
retrieves email addresses, and sends an email to all
members of a website.

The problem is this: the PHP script times out after
sending about 5,000 mailings, and I have to restart it
10 times in order to mail the entire list!

This is an ongoing problem I have had for almost a
year now. I have tried MANY things to make this work
better, which I have outlined below:

1) Upped the Max Excecution Time in PHP from 30 to a
ridiculously high 300 (is this a security issue?)
2) Upped the Max amount of memory a PHP script can
have from 8mb to 16mb
3) Running sendmail in "deferred" mode instead of
"background" mode, and processing the mail queue ever
5 minutes instead of the default 1 hour.

Results:

1) The script runs much longer, but still times out.
(One thing I want to make clear, even when max
execution time is 30 seconds, the script does not stop
after 30 seconds, maybe it just means 30 seconds of
inactivity?)

2) I have no idea if this is making a difference or
not, does anyone know?

3) Since this means mailings get sent right into the
queue, and not sent right away, the HTTP interface
runs 10 times faster. This would be a GREAT solution
for me, but it has one drawback: when a user signs up
for the site, their confirmation email must be sent
immediately...it cannot sit in the queue until the
next time the queue is processed (at most 5 minutes).

So, I figure I have two options. Leave sendmail as set
to deferred, process the queue every so often, but
find a way to have the confirmation emails sent
immediately. This is really the option I want to do.
The sendmail version I have (latest version), has 4
separate mail queues. Does anyone know how to use PHP
to stipulate that some mailings get sent immediately,
while others are just queued until the next queue run?

Otherwise, I have to set the delivery method of
sendmail back to background, have mailings take 10
times as long from the HTTP interface, and try and
find some way from keeping the script from timing out
and having to restart the mailing.

ANY HELP is greatly appreciated!

BTW, the server is loaded, dual proc, gig of ram,
etc...more hardware has not helped the problem.

__
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs
http://www.hotjobs.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php