On 04/25/2004 05:43 PM, Travis Low wrote:
Using mail($to, $subject, $content, $headers) takes way too long when attempting to mail to 30k people. This seems to be a result of a socket being opened for each send. Is there a better way to approach this situation via php?
Under Unix/Linux, PHP itself does not open any sockets to queue messages with the mail function. If you are using Unix/Linux with sendmail there are some options that can be tweaked to make it just queue the message instead of trying to deliver the message immediately.
Okay, I'll bite. What options?
There are several options that may suite you. Check sendmail man page for DeliveryMode option.
You may also want to take a look at this class that comes with a sub-class specialized in deliverying messages with sendmail. It provide a delivery_mode class variable that lets you override the sendmail default delivery mode.
If you want to try this class but do not want to change your scripts much, you can also use a wrapper function that comes with this class named sendmail_mail(). It emulates the mail() function except that you can change these options. You just need to include the class files and change the mail() calls to sendmail_mail() calls without any need to change parameters.
http://www.phpclasses.org/mimemessage
--
Regards, Manuel Lemos
PHP Classes - Free ready to use OOP components written in PHP http://www.phpclasses.org/
PHP Reviews - Reviews of PHP books and other products http://www.phpclasses.org/reviews/
Metastorage - Data object relational mapping layer generator http://www.meta-language.net/metastorage.html
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php