I am creating a php/mysql based mailing list script.
I know scripts for a newsletter on the web aren't very efficient for a lot of subscribers because the browser will probably time out, but I have an idea that might decrease that problem.
What if the subscribers in the list were broken up into groups of say 250, 500, 1000, or 5000 subscribers and people were able to choose how many subscribers in each group they want to have. And then, after they click the submit button, a next page loads that will send out the newsletter to the first 250, 500, 1000, or 5000 subscribers, depending on what they chose. The following page that loaded would have another submit button to send out the next group, and so on until the newsletter was sent out to everyone.
How efficient would that be? I mean, would that solve the problem of having to send out a newsletter to a lot of subscribers with a php/mysql based list? Of course, the 1000 and 5000 subscriber group would be for the people who have faster internet connections.
I just want to see if that was a good idea or not.
Please let me know.
I think that will sort out most problems with regard to timeouts - the server won't be forced to do them all at once, creating a longer job. vBulletin actually does something similar and it really does help.
Well if each email address is 20 bytes, then adding 1000 names adds 20k... if 20k makes a long enough of a difference... You would have to add in some processing time...
Personally, I wouldn't send email from a webpage. I'd run a shell script (if possible) that would do it. Then timeouts are not an issue and errors (anything printed to the terminal) would be automatically emailed to the owner of the site. Of course, this isn't always possible, but I think it is the preferable solution.
Yeah, but I am not talking about the best way to send out a newsletter. I am trying to figure out the best way to create a mailing list script, to solve the problem of having a lot of subscribers. Not everyone knows shell or even has access to it and that is the reason why I am creating this script.
Owen, well it is more then just 20K because you aren't just using the email addresses, but you are also sending out a 5-20K newsletter to each of those email address which makes it take longer to process. Grabbing the email address isn't the bulk of the process, at least from what I know. It is sending out the 5-20K newsletter to each of those addresses.
I had originally created the script just to send out without seperating it into groups and it took about 1.5-2 minutes to send out a 15K email to 1050 email addresses on a 56K modem. I am not sure how many email addresses and how big of a newsletter it would take to time out the connection, but it is better safe then sorry.
Well usually you send it as a bulk bcc. That's what topica, listbot, and most of the big players do. It is possible (and sometime beneficial) to send individual messages, but 90% of the time it is a waste of bandwidth.
Ohhhh....so would that be better then doing it the way I was doing it? What would the benifits of doing it my original way be over doing it that way, if there is any?
Man, I wish I thought of that before. That was something very obvious that I overlooked. Thanks for bringing that up!
Your way is good because you can
- customize for each user (ie Dear John,)
- easy unsubscribe (click here to unsubscribe)
- but is slower, more complicated
Sending bcc is good because
- pretty quick, MUCH lower-bandwidth, MUCH lower-resource
- works just as well and is easier to program
- bad: lack of customization for user (minor usually)
If you're sending a newsletter there is little reason to customize, but if you are sending a membership update, the mail-merge individual message type is better.
Oh okay, that makes sense. Thanks for the clarification.
I am not totally sure if I should just change the system to the easier, less bandwidth way or not. Maybe I could make that as an option in the script, to have the emails more customizeable or to have the script take up less resources and be a little less customizeable.
For my site, I would probably prefer to do my original way, but it is not that big of a deal.
Thanks for your help Owne. :)
No problem. Good luck!
OK, so this thread is months old, but I just wanted to add a comment:
A potential downside to the 'bcc' approach is that people who've got their anti-spam settings set to the max (eg. Hotmail) may automatically have their incoming message rejected/blocked where their e-mail address is in the bcc: field.
So if we don't wish to reveal the list of all subscribers on a list to everyone else (which is never a good idea), then we're left with no choice. We have to send the message multiple times, 1 per subscriber, with their e-mail address in the To: field.
No, I'm not a spammer myself (I hate spam with a passion), but just thought I'd point this out.