E-mail Batch Sender Suggestions Needed
Hi there - I run a website for bands and musicians that, as one of the features, allows them to gather mailing list subscriptions and then send out a newsletter to all their subscribers. Just so you know what I'm using, the site is built in ColdFusion, uses an Access database, and uses the CFMAIL tag to process the sending.
The problem is this: Several of the bands on there are getting some pretty hefty mailing lists, with thounsands of people on there. In my original version of the site, when they would send the list, it would basically bomb my hosts e-mail server all at once with thousands of outbound e-mails.
Seeing that some e-mails were getting dropped and that there were some problems, I created a temporary arrangement. Basically, the site now sends those thousands of e-mails in 200-email batches. It takes time, but it works. The number of dropped e-mails has nearly disappeared.
However, this is NOT a final solution for this, and I'm trying to figure out a new way to approach this. Are there any mail server services that can take thousand e-mail drops? Are there any kind of special CF tags or coding methods that would help?
I'm pretty much against a wall here, and I'm trying to figure out a way for this to work as best as possible. I want to keep my clients happy.
Thanks for any suggestions you might have!
split the job on the back end, not the front
if you were running on *nix, you might still have this problem (though at higher threshholds), and i might recommend the following solution. however, since you're running on windows, i don't really know how applicable this is (i don't have much server experience with windows).
so, in *nix i would do this:
when a user (a band) clicks the "Spam My Fans" button, just make a note of it on the server (in the database). then have a cron job (a process that runs every x minutes in the background) check for those notes and, when it finds one, put the message and all the e-mail addresses of the fans into a queue (also in the DB if you like).
then that cron job or another is always checking this queue, and whenever there is something queued, grabbing N number of addresses and sending to them (and deleting them from the queue, of course).
the rationale is that the users (bands) don't need the 3000+ messages sent *all at once.* if it takes ten minutes, it's not a problem... it's just a problem if they have to stare at the monitor for those ten minutes.
i'm sure you can do the same with windows, there must be some cron-equivalent timed background program thingy.
cheers
maybe you should switch...
Maybe you should switch to some kind of Unix/Linux/BSD/Etc based service.
I know that's a big pain, but you'll get to use much more standard tools, and it's not very expensive anymore. Cron and mySQL (and php perl ruby whatever) are standard equipment in the Unix hosting world. Anybody offering less, unless it's as-good-as-free, is cheating.
Some folks will also let you set up real databases, like PostgreSQL, with which you can learn lots of stuff that's applicable to the commercial world (I'm a database guy btw). And anyway unless you are using SQLserver you'll probably find mySQL a big improvement, at least performance-wise.
I personally have two hosted accounts and two servers, one a colo and one an experimental server on a DSL line. Depending on where you live, you might like to try the DSL solution- speakeasy.net are the people to talk to. If you are going to have premium DSL anyway it's nice to also have a server.
Just as a reference point, one of my providers, http://www.cwihosting.com/ has good price/performance for the kind of thing you're talking about.
If you do switch providers, while you're shopping around be sure to let them know you plan to send a lot of mails and in what context. Things being what they are today, you might get preemptively shut down if too much mail goes out from your account, as people might suspect you of spamming. Saves a lot of time to explain the situation upfront.