[EMAIL PROTECTED] wrote:
>
> John P wrote:
> > All works great, however every so often (bi-weekly) I need to send an
> > e-mail to 40,000 customers (different e-mail for each one), generated
> > using MySQL and PHP's mail() command.
>
> On Sun, 18 Feb 2001, Lukasz Felsztukier wrote:
> > I am here facing the same problem myself. We have over 15.000
> > subscribed website-monthly-letter receivers. My script (being sent
> > till this day on a sendmail system) was dying halfway (probably
> > timeout). Triggering it from a command line is unfortunatelly not an
> > option (it's done thru a www interface). I am also wondering what's
> > the best way to send all these emails.
>
> firstly, y'all are going to have to do some programming if you went to do
> this as quickly as possible. saying things like I HAVE to use the mail()
> interface in php or not using a command-line interface means you have
> little or no control over the delivery process for this specific class of
> mail problems.
>
> firstly, qmail-remote and qmail-queue are the two qmail programs you need
> to use. your script needs to do something like the following (in pseudo
> code)
>
> maxchildren=1000;
> children=0;
>
> whenever SIGCHLD decrement children
>
> while (workdoto) {
> get_work();
>
> if (children == maxchildren ) wait();
> child=fork();
>
> # error conditions in parent
> if (child<0) {
> error, set maxchildrenlower, exit or retry;
> };
>
> # this is the child process
> if (child==0) {
> send mail using qmail-remote
> if !success
> send mail using qmail-queue
> exit 0 # child finished
> };
>
> # this is the parent process
> if (child > 0 )
> children ++
>
> }
>
> # wait for children to finish
> while (children != 0) wait();
> exit
> -----------
>
> In this way you'll make the first delivery attempt yourself for each
> recipient; avoiding any overhead in the qmail-send process or the queue
> management. if the first attempt fails then the message is passed off to
> qmail-send to handle, which should be a much lower volume of mail.
I understand this code has to be executed in a loop for each
recipient...Can you explain what advantages I get doing it this way ?
Cheers,
--
Lukasz Felsztukier
: : d i g i t a l O n e : : interactive media house
: : http://www.digitalone.pl
: : Al. Kosciuszki 1, 90-418 Lodz, Poland
: : tel./fax [+48 42] 632.89.74