Avoid PHP timeout when sending newsletter
- by Lars
Hi,
I have recently implemented the Swiftmailer library, but the first time I used it, I got a php timeout error even though it only had to send out mails to around 300 people.. (I should mention that using the set_time_limit(0); workaround is not an option due to restrictions on the server)
The way I use it is like this:
$transport = Swift_SmtpTransport::newInstance('smtp.mydomain.com',25);
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance();
$message->setSubject($_POST['subj']);
$message->setFrom(array('email' => 'Mysite'));
$message->setTo($recipients);
$message->setBody(strip_tags($messagebody));
$message->addPart($messagebody, 'text/html');
$numSent = $mailer->batchSend($message);
printf("Sent %d messages\n", $numSent);
where $recipients is a commaseparated array of emails (built with explode() from a mySQL query)..
I have no idea which part of the above code that generates the script-timeout, and since I use it for a newsletter function, it is rather difficult for me to test or debug it, so I would be really thankful for anyone coming up with a (near) bulletproof solution to this problem :)
Thanks in advance !
Lars