470,849 Members | 1,166 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,849 developers. It's quick & easy.

php mailing list operation

Hi,
I'm using the mail() function to send out newsletters to subscribers,
problem is that it seems a little unreliable...
at the moment I assemble the mail outside a loop then iterate through
all the mail addresses
for($i=0;$i<$numaddresses;$i++){
mail($to[$i],$subj,$message,$fromstr);
}
should i be putting in a delay message or a retry_on_fail method or
anything?

Martin

Feb 28 '06 #1
4 1131
Cl*******@hotmail.com wrote:
Hi,
I'm using the mail() function to send out newsletters to subscribers,
problem is that it seems a little unreliable...
at the moment I assemble the mail outside a loop then iterate through
all the mail addresses
for($i=0;$i<$numaddresses;$i++){
mail($to[$i],$subj,$message,$fromstr);
}
should i be putting in a delay message or a retry_on_fail method or
anything?

Martin


mail() is not usually the best choice - you should try using sendmail or
STMP.

But, anyways, for mail, you should batch them. I send 50 at a time. If
you do not, your script will either time out or your browser will abort.

Carl Vondrick
Feb 28 '06 #2
I've had a similar question myself.
I don't want the email to contain a long To: or CC:, but I don't want
to loop a bunch because sometimes mail() takes forever to send.

Is there a way to simply queue them up and let the mailer daemon
process them at its leisure, so the mail() command returns nice and
quick?

I know you wouldn't have any useful information returned as to whether
it mailed or not, but I'm not worried about that.

-Richard Levasseur

Feb 28 '06 #3
Richard Levasseur wrote:
I've had a similar question myself.
I don't want the email to contain a long To: or CC:, but I don't want
to loop a bunch because sometimes mail() takes forever to send.
I am by no means a mail expert, but the way I just do it is batch them.
With a little bit of Ajax, the thing is seamless.

Is there a way to simply queue them up and let the mailer daemon
process them at its leisure, so the mail() command returns nice and
quick?

I know you wouldn't have any useful information returned as to whether
it mailed or not, but I'm not worried about that.

-Richard Levasseur

--
Carl Vondrick
www.carlsoft.net
usenet [at] carlsoft [dot] net
Feb 28 '06 #4
Hello,

on 02/27/2006 11:44 PM Richard Levasseur said the following:
I've had a similar question myself.
I don't want the email to contain a long To: or CC:, but I don't want
to loop a bunch because sometimes mail() takes forever to send.

Is there a way to simply queue them up and let the mailer daemon
process them at its leisure, so the mail() command returns nice and
quick?


Yes, some MTA provide means to just queue the message and do not wait
for delivery attempt.

Under Linux/Unix, sendmail and exim have switches for this. Under
Windows you can drop the messages in Exchange pickup folder .

If you want to go for these solutions, you may want to try this class.
It has sub-classes specialized in deliverying with different MTA:
sendmail (or exim, or postfix), qmail, SMTP, Exchange pickup folder,
etc.. Just call the class SetBulkMail function before entering the bulk
mail loop.

http://www.phpclasses.org/mimemessage

PS. Do not use SMTP for bulk mailing unless you do not have an
alternative. It is the slowest method of all.
--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/
Feb 28 '06 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Thom McGrath | last post: by
3 posts views Thread by Dave Moore | last post: by
reply views Thread by Brian van den Broek | last post: by
6 posts views Thread by Francois Suter | last post: by
67 posts views Thread by Bob Powell | last post: by
reply views Thread by techwr-l-confirm+22d099e2f3d881b010eaeb38c05837f62 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.